После чтения ответов, я обнаружил более простой путь, который включает изменение только одного файла.
Создают пакетный файл для вызова различной программы, с аргументом 2 и 5. Этот файл должен быть где-нибудь в Вашем пути. (Если Вы не знаете, куда то есть, поместите его в c:\windows). Назовите его, например, "gitdiff.bat". Мой:
@echo off
REM This is gitdiff.bat
"C:\Program Files\WinMerge\WinMergeU.exe" %2 %5
Набор переменная среды для указания на пакетный файл. Например: GIT_EXTERNAL_DIFF=gitdiff.bat
. Или через powershell путем ввода git config --global diff.external gitdiff.bat
.
важно не использовать кавычки или указать любую информацию о пути, иначе это не будет работать. Вот почему gitdiff.bat должен быть в Вашем пути.
Теперь при вводе "разности мерзавца" она вызовет внешнее различное средство просмотра.
На сайте MSDN обсуждаются методы фоновой обработки на CF .
Наиболее распространенным вариантом является использование ThreadPool.QueueUserWorkItem вместо BackgroundWorker, хотя есть другие варианты.
Есть реализация BackgroundWorker для CF: http://www.danielmoth.com/Blog/2004/12/backgroundworker-sample.html
Здесь - реализация, созданная с использованием Reflector . Вы можете использовать Reflector для проверки различных реализаций в .NET framework