У меня есть метод, который вызывает асинхронный метод, и обратный вызов, который запускается после завершения асинхронного метода.
Я хочу, чтобы мой метод отображался синхронно, поэтому я создал AutoResetEvent, который называется асинхронным методом, вызов WaitOne () для экземпляра AutoResetEvent и я вызываю Set () в методе обратного вызова. Примерно так (упрощенно для этого примера):
private System.Threading.AutoResetEvent waitRun_m;
public void RunSynchronous()
{
waitRun_m = new System.Threading.AutoResetEvent(false);
CallAsynchronousMethod();
waitRun_m.WaitOne();
}
private void Callback()
{
waitRun_m.Set();
}
Теперь можно ли завершить вызов CallAsynchronousMethod до вызова WaitOne (), вызывая вызов Set () перед WaitOne (). Есть ли лучший способ сделать это, чтобы избежать этой потенциальной проблемы?