string VariableA
string VariableB
string VariableC
void Main(){
run((string result){A= result;});
run((string result){B = result;});
run((string result){C = result;});
Task.Run(async ()=>{
while (A == null)
await Task.delay(100);
})
... unreachable code
... when breaking here >> t.Result holds a value but the owner task is Blocked in task window
}
void run(Action<string> action){
Task.Run( async ()=>{ Some Operations; } )
.ContinueWith((t, o) => {
Application.Current.Dispatcher.Invoke(() => {
action(t.Result);
}) ;
}, SynchronizationContext.Current);
}
Требуется навсегда ... и после отладки ... Я обнаружил, что результаты задачи были получены, но не могут быть пропущены с помощью действия продолжения ... которое заполняет цикл while навсегда
.
SynchronizationContext.Current используется в ContinueWith