我有一个程序,使用自定义消息从WndProc
调用某些方法,如下所示:
protected override void WndProc(ref Message m)
{
switch ((uint)m.Msg)
{
case WM_QUIT:
Application.Exit();
return;
case WM_STARTOP:
Context.TændNas();
m.Result = new IntPtr(1);
break;
}
base.WndProc(ref m);
}
现在,我想使方法异步。
但是,我无法将async
关键字添加到WndProc
替代中。
如果我将Context.TændNasAsync
设为async
方法,该如何从WndProc
调用它?
结论:
我接受@Hans Passant的建议,创建了一个async
事件处理程序。这样,我可以在UI线程上调用async
方法,同时使其保持异步(awaitable
)。
答案 0 :(得分:2)
这应该有效:
Task.Run(()=>Context.TaendNas());
或更确切地说:
Task.Run(async ()=> await Context.TaendNas());