private void displayDifferencesMessageIfNecessary(final boolean noFilteredDifferencesFound) {

		try {
			ProgramMemoryComparator programMemoryComparator =
				new ProgramMemoryComparator(program1, program2);
			boolean hasMemoryDifferences = programMemoryComparator.hasMemoryDifferences();

			String title = null;
			String message = null;

			if (isLimitedToSelection) {
				if (noFilteredDifferencesFound) {
					title = "No Differences In Selection";
					message = "No differences were found for the addresses in the selection" +
						"\nand for the types of program information being compared by this Diff.";
				}
			}
			else {
				if (hasMemoryDifferences) {
					title = "Memory Differs";
					message = getMemoryDifferenceMessage(noFilteredDifferencesFound,
						programMemoryComparator);
				}
				else if (noFilteredDifferencesFound) {
					// Not a Diff on a selection, memory is the same, and no differences found 
					// for current filter and compatible addresses.
					title = "No Differences";
					message =
						"No differences were found for the addresses that are compatible between the two" +
							"\nprograms for the types of program information being compared by this Diff.";
				}
			}
			if (title != null) {
				String note =
					"\n \nNote: Some parts of the program are not handled by Diff (for example:" +
						"\n         Markup where only one program has that memory address," +
						"\n         Registers that are not common to both programs' languages," +
						"\n         Program Trees, Data Types that haven't been applied to memory, etc.)";

				Msg.showInfo(getClass(), plugin.getListingPanel(), title, message + note);
			}
		}
		catch (ProgramConflictException e) {
			Msg.showError(getClass(), plugin.getListingPanel(), "Can't Compare Memory",
				"Diff can't compare the two programs memory. " + e.getMessage());
			return;
		}
	}
This is the method TaskMonitor called to do the work.

@param monitor The TaskMonitor that will monitor the executing Task.  Will be null if
		  this task declared that it does not use a TaskMonitor
Ghidra/Features/ProgramDiff/src/main/java/ghidra/app/plugin/core/diff/CreateDiffTask.java