Это хорошо работает для меня
public static class TaskHelper
{
public static void RunTaskSynchronously(this Task t)
{
var task = Task.Run(async () => await t);
task.Wait();
}
public static T RunTaskSynchronously<T>(this Task<T> t)
{
T res = default(T);
var task = Task.Run(async () => res = await t);
task.Wait();
return res;
}
}
Используя start
работы для меня:
@echo off
copy "C:\Remoting.config-Training" "C:\Remoting.config"
start C:\ThirdParty.exe
РЕДАКТИРОВАНИЕ: хорошо, взгляд более тесно, start
, кажется, интерпретирует первый параметр как новый заголовок окна, если заключено в кавычки. Так, если необходимо заключить путь в кавычки к ThirdParty.exe, необходимо предоставить строку заголовка также.
Примеры:
:: Title not needed:
start C:\ThirdParty.exe
:: Title needed
start "Third Party App" "C:\Program Files\Vendor\ThirdParty.exe"
Воспользуйтесь этим, указанное выше не работает. Я тестировал Windows Server 2003.
@echo off
copy "C:\Remoting.config-Training" "C:\Remoting.config"
Start /I "" "C:\ThirdParty.exe"
exit
Использование start
работает нормально, если вы не используете язык сценариев. К счастью, для Python есть выход - просто используйте pythonw.exe
вместо python.exe
:
:: Title not needed:
start pythonw.exe application.py
Если вам нужны кавычки, сделайте следующее:
:: Title needed
start "Great Python App" pythonw.exe "C:\Program Files\Vendor\App\application.py"
Попробуйте это:
@echo off
copy "C:\Remoting.config-Training" "C:\Remoting.config"
start C:\ThirdParty.exe
exit
Я действительно не нашел хороший способ сделать это исходно, таким образом, я просто использую утилиту, названную hstart, который делает это для меня. Если бы существует более опрятный способ сделать это, который был бы хорош.