c# – Invoke如何工作?线程没有只有1个指令指针?
发布时间:2020-12-15 06:44:39 所属栏目:百科 来源:网络整理
导读:我想知道C#Invoke函数是否可以工作(我现在正在考虑来自工作线程的调用来调用从GUI线程操作GUI的方法): 假设我有两个线程,每个线程都有它的inctruction指针,指向当前执行的指令. 现在我在工作线程中调用Invoke来在GUI线程中运行委托.当GUI线程已经具有指令指
我想知道C#Invoke函数是否可以工作(我现在正在考虑来自工作线程的调用来调用从GUI线程操作GUI的方法):
假设我有两个线程,每个线程都有它的inctruction指针,指向当前执行的指令. 现在我在工作线程中调用Invoke来在GUI线程中运行委托.当GUI线程已经具有指令指针(IP),并且每个线程只能有一个时,怎么可能? 这个问题的泛化是,当我想要从线程1调用函数f()时,如何在一些其他线程的上下文中执行f()的方法呢? 谢谢启蒙:)! 解决方法
它向目标线程发送一个Window消息.线程必须在一个消息循环中才能使Invoke工作.当线程获取消息时,它调用委托.
不需要跨线程IP更改 – 实际上,更改IP将几乎肯定会使目标线程崩溃. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |