Я стараюсь не связывать цепочку BackgroundWorkers вместе. Я делаю то, что требует от меня ожидания обновления пользовательского интерфейса перед продолжением выполнения. Очевидно, я не могу использовать Sleep, поскольку это блокирует поток пользовательского интерфейса от обновления и побеждает цель. Я нашел код, ниже которого я думал, был ответ, но кажется, что строка task.Wait();
по-прежнему блокирует поток пользовательского интерфейса.Могу ли я использовать async/wait для имитации фонового работника?
static void Main(string[] args)
{
var task = Task.Run(() => DoSomething());
task.Wait();
// once the task completes, now do more
}
static void DoSomething()
{
// something here that is looking for the UI to change
}
Я также попытался следующие, которые сделали то же самое:
static void Main(string[] args)
{
var task = Task.Run(() => DoSomethingAsync());
task.Wait();
// once the task completes, now do more
}
private async Task DoSomethingAsync()
{
// something here that is looking for the UI to change
}
Можно ли делать то, что я хочу, и если да, то что я делаю не так?
НИКОГДА КОГДА-ЛИБО КОГДА-ЛИБО использовать 'Task.Wait()', то почти гарантированно производить затор. – Aron