求教多线程问题

问题描述

我在写一个winform程序,点button1会循环调用别的project的程序,运行大约几分钟,现在想要加一个button2,终止button1的程序运行,多线程应该可以解决这个问题。。我已经尝试用上thread,不过结果不好,代码太多,不贴上来了,大概就是这个样子:privateThreadthreadtest;privatedelegatevoidDelegatetest(objectobjTest,stringstrMethod);privateDelegatetestdelegatetest;button1事件{delegatetest=newDelegatetest(invokemethod);threadtest=newThread(newThreadStart(run));threadtest.Start();//后续的代码//……}run(){//invoke另一个project的方法}但是现在的问题是,thread.start()以后,程序并不运行thread之中的方法,而是把后续的代码都运行完之后才开始运行thread之中的方法,于是我加上了threadtest.join(),但是程序运行到join这一行之后,就没有反应了,在vs里点一下暂停,也一直停留在join这行,是不是我理解有误?怎么样才可以实现不点stop就像没有加thread一样顺利运行完程序,点了stop就终止线程,然后执行后续的代码?

解决方案

解决方案二:
通过一个标识变量flagbutton1的线程run()如下voidrun(){while(flag){//...其他}}点button1把flag置true并启动线程点button2把flag置false,当本轮循环执行完成,就退出循环,然后线程就结束了
解决方案三:
SLEEP()?线程优先级?
解决方案四:
我也想了解这方面的内容
解决方案五:
可以使用信号量,获得信号量的线程运行,没有获得信号量的线程等待。
解决方案六:
引用4楼zhaojiangjing的回复:

可以使用信号量,获得信号量的线程运行,没有获得信号量的线程等待。

是什么意思?
解决方案七:
虽然现在已经按照别的方法做这件事,但是我还是想问问多线程究竟是什么意思?跪求大仙指点一二。。
解决方案八:
//中间加句申明为后台线程,你的死循环放前台不死机已经不错了threadtest=newThread(newThreadStart(run));threadtest.IsBackground=true;//这句threadtest.Start();
解决方案九:
1、把后续代码封装成一个方法func1();2、button2点击事件执行threadtest.Stop();func1();3、如果你还有个暂停按钮button3,则在暂停时执行threadtest.Suspend();继续时执行threadtest.Resume();而且还应在threadtest执行结束时回调func1

时间: 2024-10-31 14:31:40

求教多线程问题的相关文章

求教多线程接收消息队列的问题

问题描述 写了个服务,用多线程来接收消息队列,但是每次测试20万条数据,接收过来都要少几百条数据,百思不得其解--我的业务逻辑:1.定期扫描msmq2.如果有消息,开多线程循环接收3.每个线程接收到消息后放在内存里4.等所有线程结束,用bulkcopy入库现在问题出在第3步,假设消息队列里有20万条数据,每次线程全部结束后内存里只有19万9千条左右,总要少1000条左右--请问有什么可能导致这个问题?下面是代码///<summary>///间隔一定时间(ExecuteTime)调用Receiv

c#多线程读写图片画图-C# 多线程读写删除文件并绘制在picture上

问题描述 C# 多线程读写删除文件并绘制在picture上 namespace PictureSD { public partial class Form1 : Form { public Form1() { InitializeComponent(); } bool flag; bool flag2; private Object thisLock = new object(); ComputePic face; Thread ThreadSamp;// 图片 Bitmap bc1; Bitm

求教c#多线程操作串口的方法

问题描述 求教c#多线程操作串口的方法 需求是这样的. 1.有一个UI的主线程 .里面需要调用 串口通信.往里面发送消息. 2.另一方满我需要循环去取该串口有没有新的消息发送过来.然后将发送过来的消息传递给UI的主线程. c#新手.请教各位.该怎么实现? 解决方案 用serialport控件,用不着多线程.当数据到达,会触发dataarrived事件,不需要轮询. 解决方案二: C#多线程:Interlocked类操作C#基于事件驱动的多串口多线程串口通讯软件架构设计C#基于事件驱动的多串口多线

java 多线程问题,新手求教!!!!!!

问题描述 java 多线程问题,新手求教!!!!!! public class LinesRectsOvalsJPanel extends JPanel implements Runnable { private final int sleeptime=5; private int x=400; private int y=0; private double xspeed=1.0,yspeed=1.0; public LinesRectsOvalsJPanel(int x,int y,doubl

求教,关于多线程的设计问题!!!

问题描述 求教,关于多线程的设计问题!!! 我写了一个这样的模拟程序 ,想要实现在载入界面的时候开始线程1,在线程1中开始线程2并等待线程2结束后再次运行线程1,如此循环往复 ,小弟菜鸟一枚,希望大家可以帮我指出错误,告诉我怎样修改public partial class Form1 : Form { public Form1() { InitializeComponent(); } bool sign = true; Thread thread; bool sign2 = false; Thr

网络编程-求教如何编辑一个多线程聊天室

问题描述 求教如何编辑一个多线程聊天室 用c c++或者 html+ css+数据库+php 做一个 新人没有奖励 只求大神帮忙 教一下 解决方案 可以使用编程工具实现,具体你可以google下 解决方案二: 黑马程序员-多线程聊天室

c# 多线程-用c#写了个多线程小程序,占用内存不断的增大,虚心求教

问题描述 用c#写了个多线程小程序,占用内存不断的增大,虚心求教 cleanDataTimer.Elapsed += new ElapsedEventHandler(CleanData); cleanDataTimer.Interval = 0.000000000006; cleanDataTimer.Enabled = true; Thread addRCSMemoryData = new Thread(new ThreadStart(AddRCSMemoryDeviceData)); add

大婶们,小弟求教一个关于多线程的问题啊

问题描述 大婶们,小弟求教一个关于多线程的问题.是这样的,一个java程序启动了多个线程,现在是这样,我想比如达成某种条件,就让这些线程同时做一些事情,求教怎么操作啊?? 解决方案 解决方案二:同时执行除非你有绝对多的cpu做铺垫,不然不可能"同时".解决方案三:引用1楼fangmingshijie的回复: 同时执行除非你有绝对多的cpu做铺垫,不然不可能"同时". 大神,是这样做消息推送的,后台管理员添加了一条社区消息,然后就要程序推送到安卓客户端,我想到只有这种

c#多线程通信客户端,菜鸟求教

问题描述 自己这边是客户端,要与多个服务器端连接,并且可以手动建立或删除与服务器端的连接,请问各位大神怎么实现啊? 解决方案 解决方案二:可以参考sqlserver数据库的对象资源管理器中的添加链接,断开删除链接怎么实现的.解决方案三: 解决方案四:谢谢楼上的,我真的菜鸟啊,啥都不会,领导上来就叫我做这个解决方案五:引用1楼duanzi_peng的回复: 可以参考sqlserver数据库的对象资源管理器中的添加链接,断开删除链接怎么实现的. 能不能提供一些资料或实例啊?因为我刚接触,实在不知道怎