主线程与调用CoInitializeEx的子线程互锁问题 [问题点数:100分]

Bbs1
本版专家分:94
结帖率 95.83%
Bbs12
本版专家分:433021
版主
Blank
榜眼 2009年 总版技术专家分年内排行榜第二
2005年 总版技术专家分年内排行榜第二
Blank
进士 2018年总版新获得的技术专家分排名前十
Blank
银牌 2009年7月 总版技术专家分月排行榜第二
2009年3月 总版技术专家分月排行榜第二
2009年1月 总版技术专家分月排行榜第二
2005年7月 总版技术专家分月排行榜第二
2005年5月 总版技术专家分月排行榜第二
2005年3月 总版技术专家分月排行榜第二
Blank
优秀版主 优秀小版主
2015年8月优秀小版主
2015年9月优秀小版主
2015年5月优秀小版主
2015年2月论坛优秀版主
Bbs10
本版专家分:172083
Blank
红花 2018年7月 VC/MFC大版内专家分月排行榜第一
2017年10月 VC/MFC大版内专家分月排行榜第一
2016年3月 VC/MFC大版内专家分月排行榜第一
2014年10月 VC/MFC大版内专家分月排行榜第一
2014年9月 VC/MFC大版内专家分月排行榜第一
2014年7月 VC/MFC大版内专家分月排行榜第一
2014年6月 VC/MFC大版内专家分月排行榜第一
2014年5月 VC/MFC大版内专家分月排行榜第一
2014年4月 VC/MFC大版内专家分月排行榜第一
2014年2月 VC/MFC大版内专家分月排行榜第一
2013年7月 VC/MFC大版内专家分月排行榜第一
Blank
黄花 2019年7月 VC/MFC大版内专家分月排行榜第二
2019年6月 VC/MFC大版内专家分月排行榜第二
2019年5月 VC/MFC大版内专家分月排行榜第二
2019年4月 VC/MFC大版内专家分月排行榜第二
2019年3月 VC/MFC大版内专家分月排行榜第二
2018年10月 VC/MFC大版内专家分月排行榜第二
2018年9月 VC/MFC大版内专家分月排行榜第二
2018年8月 VC/MFC大版内专家分月排行榜第二
2018年5月 VC/MFC大版内专家分月排行榜第二
2017年12月 VC/MFC大版内专家分月排行榜第二
2017年6月 VC/MFC大版内专家分月排行榜第二
2017年5月 VC/MFC大版内专家分月排行榜第二
2017年1月 VC/MFC大版内专家分月排行榜第二
2016年11月 VC/MFC大版内专家分月排行榜第二
2016年4月 VC/MFC大版内专家分月排行榜第二
2014年11月 VC/MFC大版内专家分月排行榜第二
2014年1月 VC/MFC大版内专家分月排行榜第二
2013年10月 VC/MFC大版内专家分月排行榜第二
2013年9月 VC/MFC大版内专家分月排行榜第二
2013年6月 VC/MFC大版内专家分月排行榜第二
2013年4月 VC/MFC大版内专家分月排行榜第二
2012年6月 VC/MFC大版内专家分月排行榜第二
Blank
蓝花 2018年11月 VC/MFC大版内专家分月排行榜第三
2018年6月 VC/MFC大版内专家分月排行榜第三
2018年4月 VC/MFC大版内专家分月排行榜第三
2018年3月 VC/MFC大版内专家分月排行榜第三
2018年2月 VC/MFC大版内专家分月排行榜第三
2018年1月 VC/MFC大版内专家分月排行榜第三
2017年11月 VC/MFC大版内专家分月排行榜第三
2017年9月 VC/MFC大版内专家分月排行榜第三
2017年8月 VC/MFC大版内专家分月排行榜第三
2017年4月 VC/MFC大版内专家分月排行榜第三
2016年12月 VC/MFC大版内专家分月排行榜第三
2016年10月 VC/MFC大版内专家分月排行榜第三
2016年2月 VC/MFC大版内专家分月排行榜第三
2015年10月 VC/MFC大版内专家分月排行榜第三
2015年7月 VC/MFC大版内专家分月排行榜第三
2012年10月 VC/MFC大版内专家分月排行榜第三
Bbs2
本版专家分:149
Bbs9
本版专家分:87215
Blank
状元 2017年 总版技术专家分年内排行榜第一
Blank
榜眼 2014年 总版技术专家分年内排行榜第二
Blank
探花 2013年 总版技术专家分年内排行榜第三
Blank
进士 2018年总版新获得的技术专家分排名前十
2012年 总版技术专家分年内排行榜第七
Bbs1
本版专家分:94
Bbs1
本版专家分:94
Bbs1
本版专家分:94
Bbs9
本版专家分:87215
Blank
状元 2017年 总版技术专家分年内排行榜第一
Blank
榜眼 2014年 总版技术专家分年内排行榜第二
Blank
探花 2013年 总版技术专家分年内排行榜第三
Blank
进士 2018年总版新获得的技术专家分排名前十
2012年 总版技术专家分年内排行榜第七
Bbs3
本版专家分:619
Bbs5
本版专家分:4385
C# 线程调用主线程中的控件
由于项目的需要,最近几天一直在做串口和数据库。由于C#使用的时间不长,所以在编写代码和调试的过程中总是遇到意想不到的<em>问题</em>,比如在使用串口接收数据的时候,在接收数据事件中想把接收的数据放入一个textbox作显示,但是明明非常简单的代码,在编译的时候总是提示有错误。后来查看网上资料,才知道C#还有委托,匿名等等之类的新东西。下面我就把我这几天的经验和大家分享一下。这次就主要说说委托和匿名方法,以后在...
如何调用主线程里的实例
两个java文件,a.java和b.java a.java中: class A{ aaa aa = new aaa() {}; new Thread(new B.start); } b.java中:
子线程里如何调用主线程中的方法?
我在程序里加了一个SOCKET接收线程,当收到特定消息时要<em>调用</em><em>主线程</em>中的刷新方法,怎么在<em>子线程</em>中<em>调用</em>?
UE4子线程调用游戏主线程注意事项 (含队列问题)
Non-GameTthread<em>调用</em>GameThread。 —————————————————— 案例: 游戏起一个socket客户端与外部socket 服务器保持长连接通信;开辟一个接受线程(via. FRunnableThread::Create)来接受socket服务器的消息,然后在接受消息处理中有涉及到<em>调用</em>GameInstance或GameMode中的方法,导致程序宕掉(自个写的一个简...
Handler消息传递详解-主线程子线程子线程主线程子线程子线程 (一)
1、Handler消息传递流程
子线程主线程共享变量问题~~
我写了个程序,设了一全局变量,在<em>子线程</em>中修改了这个全局变量,但<em>主线程</em>里这个全局变量好像没变,有什么办法使我在<em>子线程</em>里对全局变量的修改使得<em>主线程</em>里也尽快做相应的修改吗?高人指教~~
主线程 子线程 同步问题
<em>问题</em>描述: <em>子线程</em>循环10次,接着<em>主线程</em>循环100次,接着<em>子线程</em>循环10次,<em>主线程</em>再循环100次,如此循环50次;请写出程序 package testThread; public class LoopTest { private boolean shouldMain = false; class MainThread implements Runnable { @Ov
主线程等待子线程问题
问个VC的<em>问题</em>,多线程情况下,<em>主线程</em>在onclose()函数退出时,需要确认各个<em>子线程</em>完成了某件事情,于是我用一个while+sleep的代码来查询各个<em>子线程</em>对应的一组全局变量,看是否已经被<em>子线程</em>置1,全部置1<em>主线程</em>才返回,<em>子线程</em>也是while+sleep结构的,结果发现<em>主线程</em>在Sleep(50)处循环,<em>子线程</em>根本跑不到if处,导致软件退不出来。源码如下,请大侠指点:rnrnBOOL bExitThread[20];rnHANDLE devHandle[20];rnvoid CABCDlg::OnClose() rnrn for (int i=0;i<20;i++)rn rn while(devHandle[i] != NULL)rn Sleep(50);rnrn rn CDialog::OnClose();rnrnrnUINT CAXToolDlg::TesterThreadFunc(LPVOID lparam)rnrn while(1)rn rn myfunc(devHandle);rn Sleep(500);rn if(bExitThread[lparam] == TRUE) //<em>主线程</em>发出了退出线程命令rn rn ::CloseHandle(devHandle[lparam]);rn devHandle[lparam] = NULL;rn return FALSE;rn rn rn
窗体、主线程子线程问题
目的:rnrn在主窗体(<em>主线程</em>)中启动一个线程,然后<em>主线程</em>等待。当<em>子线程</em>运行到一定状态时,通知<em>主线程</em>,让<em>主线程</em>在主窗体上弹出一个模态对话框,而这个时候无论这个模态对话框是否被用户关闭,<em>子线程</em>仍然运行。我的<em>子线程</em>都是通过创建一个“逻辑类”的实例来实现的。rnrn我现在是在主窗体中代理<em>子线程</em>发生的事件来响应这个通知。但我发现这种方法中,主窗体中的事件响应方法实际上是被<em>子线程</em><em>调用</em>的,因为在这个方法中弹出的对话框对主窗体来讲根本就不是模态的,并且如果这个对话框不被关闭的话,<em>子线程</em>被阻塞了。rnrn我应该怎么办?
C# 子线程中访问主线程中的控件
C#,从<em>子线程</em>中访问空间的一种方式。
Android创建子线程和回调主线程的几种方式
一. 创建<em>子线程</em> //通过继承thread public class JNThread1 extends Thread { public JNThread1(String name){ super(name); } @Override public void run() { M
C# 子线程调用主线程窗体的解决方法
C# <em>子线程</em><em>调用</em><em>主线程</em>窗体的解决方法 摘自其他人博客,自己试过确实解决<em>问题</em>。(如在自己定义的线程里面给textbox赋值)由于Windows窗体控件本质上不是线程安全的。因此如果有两个或多个线程适度操作某一控件的状态(set value),则可能会迫使该控件进入一种不一致的状态。还可能出现其他与线程相关的bug,包括争用
C#使用委托调用主线程上的控件
摘自其他人博客,自己试过确实解决<em>问题</em>。(如在自己定义的线程里面给textbox赋值) 由于Windows窗体控件本质上不是线程安全的。因此如果有两个或多个线程适度操作某一控件的状态(set value),则可能会迫使该控件进入一种不一致的状态。还可能出现其他与线程相关的bug,包括争用和死锁的情况。所以VS2005这一改动便可以增强 线程安全性。 我想大家更关心的是如何解决这个<em>问题</em>,如何才能操
C#多线程同步以及子线程调用主线程控件
delegate void SetTextCallback(string text);//委托 private const int count =5; //定义线程数 static Mutex mutexconslo = new Mutex();//控制同步 { for (int i = 0; i < count; i++) /
Handler主线程子线程子线程子线程主线程子线程消息传递
Handler消息传递详解,<em>子线程</em>到<em>子线程</em>,<em>主线程</em>到<em>子线程</em>,<em>子线程</em>到<em>主线程</em> 三种消息,Looper,Handler工作机制详解 https://blog.csdn.net/shoneworn/article/details/80447651
Handler消息传递详解-主线程子线程子线程主线程子线程子线程 (二)
    前一篇篇幅限制,分割成了两篇。本篇将用示例演示<em>主线程</em>到<em>子线程</em>、<em>子线程</em>到<em>主线程</em>、<em>子线程</em>到<em>子线程</em>三种进程通讯方式。如果对ThreadLocal ,Looper,Handler不了解的,可以去看我的上篇文章:Handler消息传递详解-<em>主线程</em>到<em>子线程</em>、<em>子线程</em>到<em>主线程</em>、<em>子线程</em>到<em>子线程</em> (一)代码是最好的表述,就直接先上代码吧。MainActivity代码public class MainActiv...
子线程主线程的通信问题
题目: <em>子线程</em>循环执行100次,接着到<em>主线程</em>执行20次,然后又到<em>子线程</em>执行100次,再到<em>主线程</em>执行20次,如此交替循环50次,请写出程序。分析: 首先从这道题中我们要明确一点,就是程序中只有一个<em>子线程</em>和<em>主线程</em>在运行; 其次是<em>子线程</em>和<em>主线程</em>直接会进行通信:<em>子线程</em>执行完了,要通知<em>主线程</em>执行,<em>主线程</em>执行完成后要告诉<em>子线程</em>执行 自然<em>子线程</em>和<em>主线程</em>要进行通信,那么就涉及到数据是否同步的<em>问题</em>?好了,通过
主线程子线程的关系问题
假如有一个信号量hMutex,<em>子线程</em>首先进入,在该<em>子线程</em>退出之前、且释放资源hMutex之前,如果<em>主线程</em>开始执行,并用rnWaitForsingleObject(hMutex,INFINIT)等待,是不是<em>子线程</em>也被置于等待状态?rn这时是不是就处于死锁状态????又、<em>主线程</em>创建该<em>子线程</em>;rnChildThread()rnrnWaitForsinglObject(hMutex,INFINIT);rn,,,,,rn,,,,,rnReleaseMutex(hMutex);rnrnMainProcrnrnAfxBegingThread(ChildThread);rn....rn....rnWaitForsinglObject(hMutex,INFINIT);//如果<em>子线程</em>仍然在执行且没有释放资源怎么办???????rn,,,,,rn,,,,,rnReleaseMutex(hMutex);rnrn我的程序看起来就象是<em>主线程</em>进入等待以后,<em>子线程</em>也同时被刮起;不知道是不是这个原因;rn如果果然如我猜测,怎么在<em>主线程</em>和<em>子线程</em>之间同步,而且<em>主线程</em>挂起时,<em>子线程</em>一样可以运行;(理论上说,主<em>子线程</em>之间不该这样影响啊)
WaitForSingleObject 与 EnterCriticalSection 性能比较
摘要 在 Microsoft Windows 平台上有几种以原子方式锁定代码和数据的不同方法。此白皮书的主要目的是向开发人员简要介绍 Windows 中进行锁定的不同方法以及与这些锁定有关的相应性能开销。因为未来架构将是多核架构,因此此信息非常适用。 简介 多线程软件应用对于提升英特尔内核架构的性能至关重要。锁定代码通常是多线程应用中运行最频繁的代码。确定要使用的锁定方法与确定应用中并行处理
CoinitializeEx Remarks
对于每个使用com库的线程,CoInitializeEx 至少必须<em>调用</em>一次, 通常也只<em>调用</em>一次。只要传递相同的并发标志参数,同一个线程多次<em>调用</em>CoInitializeEx也是允许的, 但是后面的有效<em>调用</em>返回S_FLASE。 要在一个线程上合理关闭com库,每一次成功<em>调用</em>CoInitialize 或者CoInitializeEx (包括任何返回S_FALSE的<em>调用</em>),都必须对应<em>调用</em>一次CoUnini
关于主线程子线程问题??
如果在一个组件中出现<em>主线程</em>和<em>子线程</em>同时<em>调用</em>当前this指针的情况,那么该组件在<em>调用</em>过程中会不会出现大的<em>问题</em>??rn有什么解救的方法避免发生这种<em>问题</em>吗???
主线程子线程的时间片问题
<em>主线程</em>创建一个<em>子线程</em>,默认优先级,即,<em>主线程</em>和<em>子线程</em>优先级一样,创建的<em>子线程</em>为立即执行的,<em>子线程</em>是不是也要等到<em>主线程</em>的第一个时间片用完挂起时才能被执行吗?rn如果<em>主线程</em>时间片用完但程序未完 ,就执行<em>子线程</em>,当<em>子线程</em>执行完后返回到<em>主线程</em>的哪个点?rn
主线程子线程互斥问题
大家看看我这个程序,我想让<em>主线程</em>和<em>子线程</em>交替执行,但是最终的结果是<em>子线程</em>没得到执行,而两个都是<em>子线程</em>时就可以为什么换成是<em>主线程</em>就不行了:rn#include rn#include rnusing namespace std;rnrnDWORD WINAPI Fun1Proc(rn LPVOID lpParameter // thread datarn );rnrnrnint index=0;rnint tickets=100;rnHANDLE hMutex;rnvoid main()rnrn HANDLE hThread1;rn hThread1=CreateThread(NULL,0,Fun1Proc,NULL,0,NULL);rn CloseHandle(hThread1);rnrn hMutex=CreateMutex(NULL,TRUE,NULL);rn if(hMutex)rn rn if(ERROR_ALREADY_EXISTS==GetLastError())rn rn cout<<<<
主线程子线程问题
顺序<em>调用</em>DLL系统是顺序<em>调用</em>D L L的D l l M a i n函数的。为了理解这样做的意义,可以考虑下面这样一个环境。假设一个进程有两个线程,线程A和线程B。该进程还有一个D L L,称为S o m e D L L . d l l,它被映射到了它的地址空间中。两个线程都准备<em>调用</em>C r e a t e T h r e a d函数,以便再创建两个线程,即线程C和线程D。
主线程子线程问题
rn第一次接触线程哈!<em>问题</em>简单。。rnrn(1)我用MFC生成了一个程序,什么都不修改,这时就建立一个<em>主线程</em>了吗,什么时候退出呢?rnrn(2)我做了个串口通讯的程序,但是当一次发送大量字节的文本的时候就会丢失数据,所以我就想用WHILE循环来发送,不过好像一直会发送数据,接收端只接收到一部分数据!rnrn 于是我就想利用线程来做, 但是,我想问能不能我用线程发送完一段数据后,这时返回到<em>主线程</em>接收发送的数据,接收完数据又再次唤醒这个线程再次发送数据? rnrn我这样想,能实现吗? 怎么控制时间啊··rnrnrn摆脱了 ,来帮帮我啊··· 星期二就要交作业了,很急啊·
主线程子线程
<em>子线程</em>通过 HandlerThread的thread.getLooper()绑定, 在<em>主线程</em>的handler的handlerMessage中<em>调用</em>threadHandler.sendMessageDelay(msg,1000);向<em>子线程</em>发送消息。 在<em>子线程</em>中通过handler.sendMessageDelay(msg,1000);向<em>主线程</em>发送消息 在一个启动点btn<em>调用</em><em>主线程</em>的handler.send
主线程-子线程
<em>子线程</em>不能更新<em>主线程</em>中的各个组件的状态。 即:只要是<em>子线程</em>就无法更新组件,那么现在只能采用与之前一样的方式,在<em>子线程</em>之中返回要操作的消息,而后在<em>主线程</em>之中利用Handler处理这些消息,从而实现线程的操作...
Java:主线程子线程-----主线程等待子线程结束
想做的一个程序如题,主要是想统计<em>子线程</em>都执行完毕所用的时间,网上搜索到了CountDownLatch这个类,这个工具类可以理解为计数器。在这里用于表示正在运行的线程数,当一个<em>子线程</em>结束的时候,将这个计数器减一,最后在<em>主线程</em>的一个地方等待<em>子线程</em>全部执行完毕,再继续运行等待后面的程序。写了个Demo程序,如下:   //<em>子线程</em> public class SubThread extends Thr
主线程子线程
我要的效果是: 点击一个按钮然后以9600的波特率发送三个指令,发送完后把波特率设置为38400进行后面的通信。rnrn这个串口通信我用的是一个类(CSerialPort),这个类在创建了对象进行发送数据时它是自己起了一个线程。rnrn我得大致用法如下:rnobject.setbaud( 9600 );rnobject.send( "command1" );rnobject.send( "command2" );rnobject.send( "command3" );rnobject.setbaud( 38400 );rnrn但是在实际应用时如果直接这样用的实际执行结果是如下的:rnobject.setbaud( 9600 );rnobject.setbaud( 38400 );rnobject.send( "command1" );rnobject.send( "command2" );rnobject.send( "command3" );rn如果在每一个操作时加一个sleep(10)基本上就能解决<em>问题</em>。但是对于不同的机器执行效果也不一样。rn在我的机子上执行正常,但是在别人的机子上大部分的执行结果如下:rnobject.setbaud( 9600 );rnSleep( 10 );rnobject.send( "command1" );rnSleep( 10 );rnobject.send( "command2" );rnSleep( 10 );rnobject.setbaud( 38400 );rnSleep( 10 );rnobject.send( "command3" );rnSleep( 10 );rn最后程序肯定是在各种各样的机子上使用的,我想有没有能够肯定按照上面的顺序执行的方法。rnrn谢谢!!rnrnrnrn
子线程主线程
1. - (id)performSelector:(SEL)aSelector; - (id)performSelector:(SEL)aSelector withObject:(id)object; - (id)performSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2; 这三个方法,均为同步执
主线程子线程
package com.lxxu.testthread; public class ThreadDemo7{ public static void main(String[] args){ System.out.println(&quot;任务一&quot;); System.out.println(&quot;任务二&quot;); new Thread(()-&amp;gt;{//<em>子线程</em> int temp = 0; ...
子线程调用主线程函数以及变量问题
已经参考了很多朋友的提问以及答案了,现在编译时有以下<em>问题</em>:rnerror C2673: ‘Action1’: global functions do not have 'this' pointersrn请高手详细解释一下其中的<em>调用</em>过程rnrntest.h:rnstatic DWORD Scrap1(); (这里如果不是定义static,就报error C2440: 'type cast' : cannot convert from '' to 'unsigned long (__stdcall *)(void *)')rnrntest.cpp:rnDWORD Action1() rnrn ((CBatchScrapDlg*)CWnd::FromHandle(this->m_hWnd))->Scrap();rn return 0;rnrnrnvoid CTestDlg::OnAction() rnrnrn hThread=CreateThread(NULL,rn 0,rn (LPTHREAD_START_ROUTINE)Action1,rn NULL,rn 0,rn NULL);rnrnrnrn一个朋友说如下结论,我的疑问是:FuncTest() 他在testdlg.h中如何定义rn假设你的对话框是CTestDlg,成员是FuncTest() rn 可以这样用: rn ((CTestDlg*)CWnd::FromHandle(this->m_hWnd))->FuncTest();rnrn
VB6子线程调用主线程对象问题
<em>子线程</em>想用<em>主线程</em>创建的对象,比如FSO,因为<em>子线程</em>无论怎么样都没办法生成FSO对象@_@显示的是自动化错误。rnrn但<em>调用</em><em>主线程</em>的对象后却发现调式时OK的,但生成EXE后运行比出错,显示 XXX不能READ。rnrn<em>主线程</em>:rnrn Set txtStream = fso.OpenTextFile(HeiTxt.Text, 1)rnrn<em>子线程</em>:rnrnDo While Form1.txtStream.AtEndOfStream = Falsernrn实际运行编译后的程序时运行到这句即包括,不管用什么样的编译方式都不行rnrn请高手指点
主线程创建的子线程怎么样引用主线程调用主线程的方法?
我在<em>主线程</em>中创建了一个<em>子线程</em>,在<em>子线程</em>运行过程中,需要在某种情况下<em>调用</em><em>主线程</em>的方法,怎么获得<em>主线程</em>的引用?
子线程调用run方法为什么是主线程调用
[code=java]public class Testrnrnrn rn public static void main(String[] args) throws Exception rn rn A a = new A();rn a.start();rn a.run();//为什么是<em>主线程</em><em>调用</em>,是a<em>调用</em>自己的run方法啊rn rnrn rnrnclass A extends Threadrnrn rn public void run()rn rn for(int i=0; i+i);rn tryrn sleep(100);rn catch(Exception e)rn rn rn rn rn[/code]
主线程子线程的数据访问冲突问题
一个<em>主线程</em>渲染文本m_Txtrn另外有一个<em>子线程</em>要修改这个m_Text;rn<em>子线程</em>如何保证修改时不和<em>主线程</em>发生访问冲突??rn我在<em>子线程</em>里加入了同步处理(用的是互斥量),结果程序运行照样访问冲突。。rn难道要在<em>主线程</em>那也要加入同步处理??不可能吧。。很难想象。
关于主线程结束子线程问题??
好久没写多线程了,今天写了下,遇到一个郁闷的<em>问题</em>:rnBOOL bClose = FALSE;//全局rnMFC的程序中OnClose函数(关闭程序)rnvoid CTestDlg::OnClose()rnrn bClose = TRUE;rn WaitForSingleObject(hMutex, INFINITE);//线程函数未结束时,结束程序会卡在这边rn AfxMessageBox(L"Close thread");rn ReleaseMutex(hMutex);rn CloseHandle(hMutex);rn hMutex = NULL;rn CDialog::OnClose();rnrn线程函数基本如下:rnVOID ThreadMove(LPVOID param)rnrn WaitForSingleObject(hMutex, INFINITE);rn while(pRecordset->EndOfFile == VARIANT_FALSE)rn rn if (bClose)rn rn //pDlg->m_Info.SetWindowText(L"线程退出");rn break;//rn rn pRecordset->MoveNext();rn rn pRecordset->Close();rn pMyConnect->Close();rn ReleaseMutex(hMutex);rn return;rnrnrn<em>问题</em>描述:rn首先启动线程函数,线程函数未结束,此时关闭程序,<em>调用</em>了OnClose函数,但是会卡在WaitForSingleObjectrn函数这,不明白为什么?
主线程等待子线程事件问题
<em>主线程</em>用来发送数据,<em>子线程</em>用来接收处理数据。<em>主线程</em>每发送完一个数据,<em>子线程</em>会接收到一个应答,<em>主线程</em>需等待<em>子线程</em>处理完毕,才能发送下一个数据。用CEvent类定义事件,在<em>子线程</em>中,当数据处理完毕,把事件置位。同时在<em>主线程</em>中用WatitForSingleObject等待事件,但是这么做会造成<em>主线程</em>死锁。请问该如何处理这个<em>问题</em>或者有没有其他方案??
Android 主线程子线程通信问题
Android <em>主线程</em>和<em>子线程</em>通信<em>问题</em>
关于主线程子线程优先级问题
我的<em>主线程</em>激活了一个<em>子线程</em>,请问有没办法控制先让<em>子线程</em>执行完毕再执行<em>主线程</em>的下面语句部分
主线程子线程与进程的退出问题
<em>主线程</em>、<em>子线程</em><em>调用</em>exit, pthread_exit,互相产生的影响。 1、在<em>主线程</em>中,在main函数中return了或是<em>调用</em>了exit函数,则<em>主线程</em>退出,且整个进程也会终止, 此时进程中的所有线程也将终止。因此要避免main函数过早结束。 2、在<em>主线程</em>中<em>调用</em>pthread_exit,   则仅仅是<em>主线程</em>结束,进程不会结束,进程内的其他线程也不会结束, 知道所有线程结束,
主线程如何控制子线程问题
现在在做一个把网页生成图片的批处理,每次处理200左右个网页rnrn<em>主线程</em>里面启动<em>子线程</em>,每个<em>子线程</em>生成一个图片,rn但是希望在<em>主线程</em>里面能够控制<em>子线程</em>,如果网页读取超时的话,rn就结束<em>子线程</em>,但是总是不能正常结束。rn有时候<em>子线程</em>抛出异常,<em>主线程</em>也结束了。rnrn帮我看看下面的代码有没有<em>问题</em>,如果有,需要怎样修改rnrn for (int i = 0; i < list.Rows.Count; i++)rn rn tryrn rnrn DataRow row = list.Rows[i];rn ..................rnrn ImageThread imageThread = new ImageThread(URL);rn ThreadStart threadStart = new ThreadStart(imageThread.makeImage);rn Thread thread = new Thread(threadStart);rn thread.Start();rn Thread.Sleep(60000);rnrn if (thread.ThreadState == ThreadState.Stopped && imageThread.STATUS == 0)rn rn //成功处理rn rn elsern rn int times = 3;rn while (thread.ThreadState == ThreadState.Running && times != 0)rn rn Thread.Sleep(20000);rn times--;rn rn thread.Abort();rn rnrn rn catch (Exception ex)rn rn //错误处理rn rn
Linux下主线程子线程的相关问题
当<em>主线程</em>结束时,其释放自身内存,此时<em>子线程</em>并没有结束。 当<em>子线程</em>访问父线程的内存时,若该内存已经被释放,则会出现内存访问错误的现象。 因此,再结束<em>主线程</em>的时候,一定要避免<em>子线程</em>访问已经释放的内存空间,其中一种好的办法就是<em>主线程</em>等待<em>子线程</em>的运行结束。...
C# Winform 主线程子线程问题
[code=csharp] public class Staticrn rn public static Form2 f2 = new Form2();rn public static string txt = "";rn public static bool isshow = false;rn rnrnrnrn public partial class Form1 : Formrn rn public Form1()rn rn InitializeComponent();rn rnrn private void Form1_Load(object sender, EventArgs e)rn rn Static.isshow = true;rn Thread td = new Thread(new ThreadStart(Shows)); rn td.Start();rn rn private void Shows()rn rn while (Static.isshow)rn rn Static.f2.Show();rn rnrn rn[/code]rnrnrn这样做副线程回不到<em>主线程</em>!如何让form1和form2分属于两个不同线程,form1 可以向form2传递值,但是form2执行的东西不会影响form1线程!
请教一个主线程子线程问题
一个下载的程序,我在<em>主线程</em>生成5个下载<em>子线程</em>,在<em>子线程</em>里设置了一个全局变量chunk,当chunk==5时,我要在<em>主线程</em>里执行一些显示操作,我要怎样才能在<em>主线程</em>知道这个全局变量变成5了呢?要<em>调用</em>什么函数吗?rn请各位大侠指点一下!最好能帮忙说的详细一点,谢谢!
子线程主线程 之间的切换问题
我用的是MapObject控件,用来开发一个雨量监测和分析系统,主要是设一个判定条件(选取一个月内降雨量大于10cm的雨量站),看哪些雨量站的符合判定判定条件的要求,然后这些雨量站点会在地图上闪烁起来。rn我运用了多线程的方法,1.开一个线程AThread找出符合条件的点result;2.开第二个线程BThread来闪烁result的点;3.在主函数中设一个变量M=result;4.<em>调用</em>第二个线程让点在地图上闪烁。rn这时我点击主界面,程序居然死了,也不能进行任何操作,这是为什么?rn
关于CoInitializeEx调用的粗浅问题
我的一个程序中有<em>调用</em>mediaplayer的接口,控制播放,原来在InitInstance();是用CoInitialize();来初始化COM的,现在我想用CoInitializeEx();来初始化,看文档如都说这样是推荐的。可是我用 用CoInitializeEx()代替CoInitialize();后编绎出现错误: error C2065: 'CoInitializeEx' : undeclared identifier; 我按msdn中说的加了#include ;还加了#define _WIN32_DCOM;没想到还是出现那个错误,而原来没有#include 和#define _WIN32_DCOM;也一样能过,该如何去用呢?
Unity主线程子线程跳转调用(1)
  Unity除了一些基本的数据类型,几乎所有的API都不能在非unity线程中<em>调用</em>,如果项目中有一段很耗时操作,unity可能会出现“假死”。如果这段操作是和unity无关的,我们可以把这个耗时的操作放到<em>子线程</em>中去运行,防止unity假死提高性能,如下面这个伪代码 Function { //这个函数会进行大量文件读写操作 LoadLocalFile(); ...
子线程调用主线程内容请使用委托函数
<em>主线程</em>读取文本显示文本内容,<em>子线程</em>会更新这个文本,并同步显示 1,类里面写一个委托函数 [code=&quot;java&quot;]delegate void SetShowLogCallback(); //定义委托[/code] 2,程序load执行方法 [code=&quot;java&quot;]private void Form1_Load(object sender, EventArgs e) ...
Unity主线程子线程跳转调用(2)
  在上一篇介绍了多线程和Unity交互方式,但是由于我的项目是一个unity编辑器插件项目,很显然上一篇的代码需要加以修改,在编辑器下实现Loom.   1,Editor下的没有Update这个生命周期函数,但是Ediitor提供了EditorApplication.update这个事件,自己用这个事件订阅update方法即可   2,Editor下的没有Awake OnDestory这些生...
子线程调用this.begininvoke会不会阻塞主线程
[color=#FF0000]BeginInvoke只会阻塞<em>主线程</em>,不会阻塞支线程!因此BeginInvoke的异步执行是指相对于支线程异步,而不是相对于<em>主线程</em>异步[/color]我想知道上面别人的结论对不对? [color=#FF0000] BeginInvoke和Invoke跟阻不阻塞UI线程没关系,是相对于<em>子线程</em>的,前者不阻塞<em>子线程</em>,后者阻塞<em>子线程</em>(这里的<em>子线程</em>是指<em>调用</em>this.Invoke和this.BeginInvoke的线程)rn.如果你大量操作UI界面,BeginInvoke和Invoke也解决不了界面卡的<em>问题</em>,它两只能解决跨线程访问控件的<em>问题</em>。[/color] 这也是别人的结论 还有人说begininvoke不会阻塞UI线程??? 要把长时间的代码放在工作线程中而非UI线程?rnrn 谁能来告诉我他们都对吗,你要是把长时间的代码放在<em>子线程</em>begininvoke的前面,不是执行不到begininvoke里面委托吗? rnrn谁来整合下啊。 第一个结论是不是错的???
iOS GCD子线程调用主线程刷新
__weak__typeof(self) weakself=self;     dispatch_async(dispatch_queue_create(0,0), ^{        // <em>子线程</em>执行任务(比如获取较大数据)         dispatch_async(dispatch_get_main_queue(), ^{          //
子线程调用主线程的窗口指针
最近在研究VC多线程编程的<em>问题</em>,碰到了在<em>子线程</em>中<em>调用</em><em>主线程</em>的窗口指针,使用了HWND* afxGetMainWnd(),如下面的线程函数:void threadFunc() { CTime time; CString strTime; m_bRun = TRUE; while(m_bRun) { time = CTime:...
主线程子线程都可以调用的UI变更方法
比如我展示一个toast出来,每次都一点点去写,很麻烦,干脆就抽出来,每次<em>调用</em>一个简单的函数就可以展示toast等。 这里举个例子,最简单的,就是把toast要展示的内容传进去,然后展示出来。 public void commonToast(final String content){     runOnUiThread(new Runnable() { @Override
iOS GCD子线程调用主线程刷新
__weak __typeof(self) weakself= self; dispatch_async(dispatch_queue_create(0, 0), ^{ // <em>子线程</em>执行任务(比如获取较大数据) dispatch_async(dispatch_get_main_queue(), ^{ // 通知<em>主线程</em>刷新 ...
主线程子线程同时对资源调用
2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt; ...
怎么在子线程里面调用主线程的函数
下面是我的<em>子线程</em>代码rnUINT ServeForClient(LPVOID lParam)rnrn CRSSocket *pSocket=(CRSSocket *)lParam;rn CMainFrame *m_app=(CMainFrame*)AfxGetMainWnd();rn CLeftView * m_left=(CLeftView *)m_app->m_wndSplitter.GetPane(0,0);rn m_left->ReceiveString(pSocket);rn return 1;rnrn我想<em>调用</em>分割窗口左视图的函数ReceiveString但是rnCLeftView * m_left=(CLeftView *)m_app->m_wndSplitter.GetPane(0,0);rn就出错,调试出错信息发生在系统的destroywindow处rn请高手赐教!
子线程主线程的异常处理的注意事项
-
主线程子线程的同步控制
一个线程的结束有两种途径,一种是象我们以下的样例一样。函数结束了。<em>调用</em>它的线程也就结束了。还有一种方式是通过函数pthread_exit来实现。另外须要说明的是,一个线程不能被多个线程等待,也就是说对一个线程仅仅能<em>调用</em>一次pthread_join。否则仅仅有一个能正确返回。其它的将返回ESRCH 错误。 在Linux中,默认情况下是在一个线程被创建后。必须使用此函数对创建的线...
主线程子线程,和join()
在网上看到一个例子 public class JoinTester01 implements Runnable { private String name; public JoinTester01(String name) { this.name = name; } public void run() { System....
主线程子线程、守护线程
import static java.util.concurrent.TimeUnit.*;      public class DaemonTest {          public static void main(String[] args) throws InterruptedException {              Runnable r = new Runnable() 
Android,UI主线程子线程
-
Android UI主线程子线程
Android UI<em>主线程</em>和<em>子线程</em>   在一个Android程序开始运行的时候,会单独启动一个Process。默认的情况下,所有这个程序中的Activity或者Service(Service和Activity只是Android提供的Components中的两种,除此之外还有Content Provider和BroadcastReceiver)都会跑在这个Process。
.net子线程主线程交互
比如执行一个线程,处理完后通知<em>主线程</em>处理结果或变量并执行<em>主线程</em>中对应的方法。Private Sub Form1_Load(sender as object, e as eventargs) handle me.load dim trd as thread =new thre
工具类/子线程切换主线程
import android.os.AsyncTask; /** * <em>子线程</em>切换<em>主线程</em> */ public class AsyncTaskUtil extends AsyncTask&amp;lt;Void , Integer , Boolean&amp;gt; { //后台任务开始前<em>调用</em>,界面初始化操作 @Override protected void onPreExecute(...
主线程子线程之间的关系
一般 一个应用程序就对应一个进程,一个进程可有一个或多个线程,而一般有一个<em>主线程</em>。 <em>主线程</em>与<em>子线程</em>之间的关系 默认情况,在新开启一个<em>子线程</em>的时候,他是前台线程,只有,将线程的IsBackground属性设为true;他才是后台线程 当<em>子线程</em>是前台线程,则<em>主线程</em>结束并不影响其他线程的执行,只有所有前台线程都结束,程序结束 当<em>子线程</em>是后台线程,则<em>主线程</em>的结束,会导致<em>子线程</em>的强迫结束 (个人理...
子线程如何访问主线程
<em>主线程</em>根据一个数组创建<em>子线程</em>A1-ANrnrn我想用一个<em>子线程</em>B,控制<em>主线程</em>的数组,进行添加删除
子线程如何interrupt主线程
<em>子线程</em>开始运行时,<em>主线程</em>开始sleep30秒。然后有两种情况:rn1,<em>子线程</em>运行时间超过30秒,<em>主线程</em>在30秒过后中断<em>子线程</em>;rn2,<em>子线程</em>30秒之内运行完成,则唤醒正在sleep中的<em>主线程</em>,继而<em>主线程</em>继续往下运行。rnrn我用sleep实现了情况1,但是对情况2却没办法。rnrn目前的思路是,在<em>子线程</em>运行后加一个.interupt()以中断在sleep中的<em>主线程</em>使其继续运行。但是,<em>问题</em>是,我找遍了也没找到<em>主线程</em>怎么表示,我是指<em>主线程</em>的代号是什么,所以没办法用。rnrn代码如下:rnrn//<em>子线程</em>rnpublic class Clock extends Threadrnrnvolatile boolean keepRunning = true;rnrnpublic Clock()rnrnrnrnpublic void run() rn while(keepRunning) rn try rn XXXXXXXX; //要执行的代码,运行时间可能不到30秒也可能超过30秒rn ?.interrupt();//<em>问题</em>即在此处,“?”代表<em>主线程</em>,“?”该是什么rn catch (Exception e1) rn // TODO Auto-generated catch blockrn e1.printStackTrace();rn rn rn rnrnpublic void pleaseStop() keepRunning = false; rnrnrnrn//<em>主线程</em>rnpublic class xwordrnrnpublic static void main(String[] args)rn XXXXX//rn rn Clock c= new Clock();rn c.start();rn try SECONDS.sleep(30); // 等待30秒rn catch(InterruptedException ignore) rn c.pleaseStop(); //30秒后,强制停止<em>子线程</em>crn rn XXXXXX//rnrnrnrnrnrn或者还有其他什么办法?多谢!
子线程通知主线程处理结果
[size=16px]实现功能如下:rn程序中有2个线程:<em>主线程</em>和<em>子线程</em>。rn<em>主线程</em>发送消息给<em>子线程</em>(postthreadmessage)后做别的事,<em>子线程</em>循环等待(while)<em>主线程</em>的消息,然后进行相应的处理。<em>子线程</em>处理结束后,再把处理结果(如变量a)发送给<em>主线程</em>,<em>主线程</em>收到<em>子线程</em>发送来的消息后就保存变量a,然后继续做自己的事。rn我的<em>问题</em>是:rn<em>主线程</em>如何知道<em>子线程</em>何时发送来消息,不能使用循环等待,因为<em>主线程</em>要做别的事。[/sizern另外,不使用窗口rn刚接触这方面,折腾了两天,希望大家帮忙,谢谢
子线程主线程关系
我的服务器端的多线程程序rn<em>子线程</em>如下:rnDWORD WINAPI SelectThread(LPVOID pParam)rnrn DWORD r;rn CMySock* psock=(CMySock*)pParam;rnrn rn fd_set readfds;rnrn struct timeval Timeval;rnrn Timeval.tv_sec = 0;rn Timeval.tv_usec = 10;rn rn CSelectModelApp* pwnd = (CSelectModelApp*)::AfxGetApp();rnrnrn while(true)rnrn rn FD_ZERO(&readfds);rn FD_SET(psock->m_clientsocket , &readfds);rn if(select(0, &readfds, NULL, NULL, &Timeval)>0)rn rn if(FD_ISSET(psock->m_clientsocket,&readfds))rn rn rn ::PostMessage(pwnd->m_pMainWnd->m_hWnd, UM_READABILITY,(WPARAM)psock, NULL);rn // AfxMessageBox("接收端接收到了");rn rn rn rn rn return r;rnrnrnrnrn加上AfxMessageBox("接收端接收到了");rn这一句就收到了rn为什么呢
子线程监控,主线程启动
private void button1_Click(object sender, EventArgs e)rn rn Form2 f = new Form2();rn f.ShowDialog();rnrn rnrn在<em>主线程</em>中<em>调用</em>button1_Click,Form2不关闭,不能操作Form1.rn在<em>子线程</em>中<em>调用</em>button1_Click,Form2不关闭,可以操作Form1. 因为是两个不同的现场无不干扰,所以ShowDialog()没用。rn怎么在<em>子线程</em>中<em>调用</em>button1_Click也不能操作Form1?
理解android主线程子线程
理解android<em>主线程</em>和<em>子线程</em> 理解一:在一个Android 程序开始运行的时候,会单独启动一个Process。默认的情况下,所有这个程序中的Activity或者Service(Service和 Activity只是Android提供的Components中的两种,除此之外还有Content Provider和Broadcast Receiver)都会跑在这个Process。   
主线程子线程中的消息循环
RunLoop-<em>主线程</em><em>主线程</em>的消息循环是默认开启. 在<em>主线程</em>中使用定时源.即定时器. 步骤 : 将定时源添加到当前线程的消息循环. - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [self timerDemo]; }- (void)timerDemo { // 创建定时器
子线程主线程之间的通信
1, 进程和线程 通俗的讲, 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 进程和线程的主要差别在于它们是不同的操作系统资源管理方式。 1,进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。 2,线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等
C陷阱与缺陷.rar下载
C陷阱与缺陷 C陷阱与缺陷 C陷阱与缺陷 C陷阱与缺陷 。。。。。。。。。 相关下载链接:[url=//download.csdn.net/download/ysfeagle/3081704?utm_source=bbsseo]//download.csdn.net/download/ysfeagle/3081704?utm_source=bbsseo[/url]
unity4.0 b6 破解插件下载
unity4.0 b6 破解插件 Unity 4 Unity4 animator 相关下载链接:[url=//download.csdn.net/download/lily_1025/4550403?utm_source=bbsseo]//download.csdn.net/download/lily_1025/4550403?utm_source=bbsseo[/url]
“海量存储系统关键技术”重大项目下载
“海量存储系统关键技术”重大项目 课题1. 海量存储系统总体研究 【课题研究目标】 根据项目总体目标,进行市场调研和关键行业应用需求调研、技术发展趋势调研、技术战略研讨、产业战略研讨、应用推广战略研讨,提出相应政策建议。研究存储技术标准,规划存储技术专利布局,对整体项目实施提供技术指导。项目整体计划制定与任务分解、课题检查管理,保证项目按期完成,推动目标产品的应用推广。与项目相关的专利合作事务与专利谈判。国际技术交流、国际技术合作、国际标准组织合作。 【课题主要研究内容】 海量存储系统的市场和技术发展趋势调研;进行技术、产业、应用推广战略研讨,提出相应政策建议;研究存储技术标准,包括网络存储设 相关下载链接:[url=//download.csdn.net/download/wmx003/4819415?utm_source=bbsseo]//download.csdn.net/download/wmx003/4819415?utm_source=bbsseo[/url]
相关热词 c# gdi 占用内存 c#中遍历字典 c#控制台模拟dos c# 斜率 最小二乘法 c#进程延迟 c# mysql完整项目 c# grid 总行数 c# web浏览器插件 c# xml 生成xsd c# 操作sql视图
我们是很有底线的