Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个显示多个工作线程结果的窗口,但我的工作线程应该没有中断(几乎)工作,所以我想将我的通知数据发布到我目前正在使用的主窗口,BeginInvoke但它有问题!我应该打电话EndInvoke,但在哪里?我应该创建另一个线程来服务这个?另一种选择是PostMessage直接使用,但由于我正在学习使用.NET我更喜欢.NET解决方案而不是平台调用(如果可用)。那么我应该怎么做才能在不阻塞我的工作线程的情况下向主线程发布一些东西呢?
BeginInvoke
EndInvoke
PostMessage
.NET
您应该简单地使用BeginInvoke,这与发布消息的直接等效。EndInvoke除非您对返回值感兴趣,否则您根本不需要调用。
如果您对返回值感兴趣,那么“我在哪里可以做”的答案EndInvoke很明显:在您需要返回值以继续之前的最后一刻调用它。