Ваш синхронизатор должен определить, когда данные могут просто быть обновлены и когда человек должен добиться потенциального конфликта. Я записал бумага, которая объясняет, как сделать этот вход использования и алгебраические законы .
Вы можете использовать метод System.Diagnostics.Process.Start .
Process.Start("notepad.exe");
Он будет работать с файлами, которые связаны с программой по умолчанию:
Process.Start(@"C:\path\to\file.zip");
Откроется файл с приложением по умолчанию.
И даже с URL-адресами для открытия браузера:
Process.Start("http://stackoverflow.com"); // open with default browser
Согласитесь с @Oliver , ProcessStartInfo дает вам гораздо больше контроля над процессом, пример:
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "notepad.exe";
startInfo.Arguments = "file.txt";
startInfo.WorkingDirectory = @"C:\path\to";
startInfo.WindowStyle = ProcessWindowStyle.Maximized;
Process process = Process.Start(startInfo);
// Wait 10 seconds for process to finish...
if (process.WaitForExit(10000))
{
// Process terminated in less than 10 seconds.
}
else
{
// Timed out
}