C#线程问题,执行循环,定时器停止了 50C

我在软件中定义了一个定时器,循环执行一个方法
然后我在其他方法中又定义了一个循环,当循环执行时,定时器就停止执行了

有什么方法可以让定时器与循环同步执行

求大神帮忙解答

4个回答

建议你把代码贴出来,这样有助于分析到底是程序问题还是逻辑问题

public void StartRunTime(string strs)
{
AutomationElement deskTop = AutomationElement.RootElement; //桌面进程
var firstSC = deskTop.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.ClassNameProperty, "WindowsForms10.Window.8.app.0.141b42a_r34_ad1"));
var secondSC = firstSC.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.ClassNameProperty, "WindowsForms10.MDICLIENT.app.0.141b42a_r34_ad1"));
var thitdSC = secondSC.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.ClassNameProperty, "WindowsForms10.Window.8.app.0.141b42a_r34_ad1"));
//MessageBox.Show(thitdSC.Current.Name);
var fourthSC = thitdSC.FindAll(TreeScope.Children, Condition.TrueCondition);
var fatherSC = fourthSC[7];
var fatherAll = fatherSC.FindAll(TreeScope.Children, Condition.TrueCondition);
var TCK = fatherAll[1];
/* TCK.GetType()*/
;
//MessageBox.Show(TCK.Current.NativeWindowHandle.ToString());

            int CRKJB = TCK.Current.NativeWindowHandle;

            //Thread.Sleep()
            //keywordinput[1]  句柄

            SetForegroundWindow((IntPtr)CRKJB);    //设置活跃窗口
            SendMessage((IntPtr)CRKJB, BM_CLICK, 0, 0);     //鼠标点击
            SendKeys.SendWait("^{a}");    //清空里面原有的数据
            SendKeys.SendWait(strs);   //发送数据

        var firstsSC = deskTop.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.ClassNameProperty, "WindowsForms10.Window.8.app.0.141b42a_r34_ad1"));
        var secondsSC = firstSC.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.ClassNameProperty, "WindowsForms10.MDICLIENT.app.0.141b42a_r34_ad1"));
        var thitdsSC = secondSC.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.ClassNameProperty, "WindowsForms10.Window.8.app.0.141b42a_r34_ad1"));
        /ar fourthSC = thitdSC.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.ClassNameProperty, "WindowsForms10.Window.8.app.0.141b42a_r34_ad1"));
        /ar fifthSC = fourthSC.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.ClassNameProperty, "WindowsForms10.Window.b.app.0.141b42a_r34_ad1")); 
        //MessageBox.Show(thitdsSC.Current.Name);
        var thitdChildre = thitdsSC.FindAll(TreeScope.Children, Condition.TrueCondition);
        var FatherForm = thitdChildre[0];
        var fatherForm2 = FatherForm.FindAll(TreeScope.Children, Condition.TrueCondition);
        var YJTC = fatherForm2[3];                   //获取一键题词按钮
        var nextSX = thitdChildre[1];                //获取下一步 进入筛选 按钮
        InvokePattern btnYJTC = (InvokePattern)YJTC.GetCurrentPattern(InvokePattern.Pattern);   //点击一键题词按钮
        btnYJTC.Invoke();

    }
    private void timer1_Tick(object sender, EventArgs e)
    {
        //IntPtr FW = FindWindow(null, "提示");
        //IntPtr hwnd = FindWindowEx(FW, IntPtr.Zero, null, "&OK");
        //SendMessage(hwnd, BM_CLICK, 0, 0);


        IntPtr mainwind = FindWindow(null, "提示");
        IntPtr buttok = FindWindowEx(mainwind, IntPtr.Zero, null, "&OK");
        if (buttok!=IntPtr.Zero)
        {
            SendMessage(buttok, WM_LBUTTONDOWN, IntPtr.Zero, null);
            SendMessage(buttok, WM_LBUTTONUP, IntPtr.Zero, null);

            NextStep();
            SelectLenth();
        }

    }

    //执行
    private void button7_Click(object sender, EventArgs e)
    {

        for (int i = 0; i < strList.Count; i++)
         {
                    StartRunTime(strList[i]);

          }

    }

那你直接循环+延迟就可以了,为什么要定时器

hardtoking
hardtoking 回复caozhy: 我用循环加延迟试过,不过程序总会很卡
2 年多之前 回复

看代码视乎是你在timer中模拟发送了一个buttonclick事件,如果这样的话,你的button不处理完click,timer肯定是卡主的,
因为你用了SendMessage,SendMessage就是将线程卡主,直到处理完才往下走,你换成PostMessage试试呢?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C# 线程停止的问题
代码如下 线程开始后 怎么停不掉??rn看网上说一般过几秒钟后就会停止掉抛异常的rn我等了几分钟还是停不掉 WHY?rn请高手指点下rnrn Thread t = null;rn //开始rn private void btnStart_Click(object sender, EventArgs e)rn rn t = new Thread(new ThreadStart(LoopAccessData));rnrn t.IsBackground = true;rn t.Start();rn rnrn //停止rn private void btnEnd_Click(object sender, EventArgs e)rn rn tryrn rn t.Abort();rn rn catch (ThreadAbortException err)rn rnrn rn rn //线程体rn void LoopAccessData()rn rn OracleConnection con = new OracleConnection("data source=xx;User ID=xx;Password=xx");rn OracleCommand com = con.CreateCommand();rn com.CommandText = "sp_test_threadloopdata";rn com.CommandType = CommandType.StoredProcedure;rn con.Open();rn com.ExecuteNonQuery(); // 非常非常的久rn con.Close();rn
C#定时器和线程的问题
Thread logtemp; rn private void timer2_Tick(object sender, EventArgs e)rn rn logtemp = new Thread(new ThreadStart(ReadLogTempFun));rn logtemp.IsBackground = true;rn logtemp.Start();rn rn private void ReadLogTempFun()rn rn //要执行的代码rn rn 我一步一步跟踪得到的结果,程序运行 ,执行定时器后,跑到ReadLogTempFun()执行,这个时候函数没执行完,仅仅是执行一小部分,又回到了定时器代码部分来执行,我把定时的时间改到很大,还是那样。如果不调试跟踪,从结果上来看是看把函数里面的代码区别执行完。这是怎么回事。希望知道的朋友说一下。谢谢了。
C#中定时器停止问题
定时器相信大家都用的比较多,定时去执行某些操作对一些业务带来方便。不过执行完了操作后需要停止定时器就要注意了。楼主就犯了个如此低级的错误。如下代码(wpf项目为例): public partial class MainWindow : Window { private DispatcherTimer checkUsedTimer = null; pub...
Qt 定时器执行线程
qt 几种定时器启动后执行线程 1 QObject::startTimer(int interval, Qt::TimerType timerType = Qt::CoarseTimer)//执行多次 执行线程与当前启动线程一致 2 QTimer::singleShot(1000, this, SLOT(slt_timeOut()));//只执行一次 执行线程与this所在线程一致跟启...
关于线程循环执行的问题
最近在写一个WEB服务器程序,要用到一个线程控制客户机的发来的消息,然后再进行处理。rn 比如在一个按钮的事件事加入rn AfxBeginThread(mythreadfuc,this);rn rn UINT mythreadfuc(LPVOID pParam)rnrn...rnrnrn现在就有一个问题我要这个线程函数 UINT mythreadfuc(LPVOID pParam)rn像时钟函数SetTimer(int nIdTime)、WM_TIME一样每一隔一秒钟执行一次相关的操作,只要不暂停线程,该线程就循环地执行下去。请教各位大侠这种类型的程序怎么做,只要给相关的例子模型和关键的函数代码就行,感谢万分。rn
关于用定时器循环执行线程函数的问题,高手帮忙!
我要用定时器来循环检测系统的数据,检测系统数据的函数是线程函数,要怎么样才能完成,我之前是在定时器中创建的的线程,但是这样会无限增加线程句柄数,有什么比较好的方法来完成此功能?
c# 循环停止
下面有一个循环 再循环中加一个判断条件 一旦满足条件 循环将停止 请问这个该如何人实现rn[code=C#]for(int n=0;n<3000;n+=30)rnrnbuff[0]=0x39;rnbuff[1]=0x10;rn//如果满足我定义的两个变量i==x 该循环提前中止 rnif (i==x)rnrnrn[/code]rn请问循环提前中止 该如何实现??
线程如何循环执行?
[code=C#]rn private long count=0;rn private void xx() count++; rn private void button1_Click(object sender, EventArgs e)rn rn ma = new Thread(new ThreadStart(xx));rn ma.Start();rn rn //我希望启用一个新的线程,使得xx()能够持续循环执行。rn //但是这里它只执行了一次。rn[/code]rnrn请问:rnrn如何启用一个新的线程,使它像一个timer控件一样能按照指定间隔执行某个方法,而不是只执行一次就结束?
关于线程循环执行
Cat1类内的输出语句会一直执行Dog1类内的输出语句只会执行一次/* * 功能:演示线程的注意事项 */ package Demo14; public class Demo14_4 { public static void main(String[] args) { Dog1 dog1 = new Dog1(); dog1.run(); Cat1 cat1 = new Ca...
线程定时器VS线程循环,哪个更好?
比较System.Threading.Timer定义线程定时器,和nSystem.Thread定义线程+while(true)循环,有什么区别,哪个性能更优?
C#线程及定时器的功能实现
实现C#2008里面的定时器功能的打开和关闭,线程的打开和关闭! 已经做成简单界面便于深入开发
定时器停止问题?
timing_zd mytimerrnmytimer=create timing_zdrnint lrnmytimer.start(10)rnl=mytimer.Stop() rnrn结果l=-1,也就是说,停止定时器没有成功。rn这是怎么以回事?
MFC 定时器停止的问题
我编写了一个基于MFC的YUV播放器,采用TimeSetEvent()函数设定定时器进行循环播放。rn但是当使用TimeKillEvent()销毁定时器的时候,定时器往往没有立刻停下来,rn问有什么办法让定时器立刻停下来;rn或者有什么办法得知定时器已经停下来?
定时器停止
不用Thread.sleep 如何使定时器停止(当count为某值时)rn[code=Java]rnrnpackage spider;rnrnimport java.util.Timer;rnimport java.util.TimerTask;rnrnpublic class test1 rnrn static int count = 0;rnrn public static void main(String[] args) rnrn operateOnTime();rnrn rnrn public static void operateOnTime() rnrn Timer timer = new Timer();rn rn // 定时执行的任务rn TimerTask task = new TimerTask() rnrn public void run() rnrn count++;rn System.out.println(" 第 " + count + " 次执行 ");rn rn rnrn rn ;rn rn timer.schedule(task, 0, 2 * 1000);rn rn rnrnrnrn[/code]
Java线程循环顺序执行
遇到一个面试题需要3个线程顺序执行,并循环10次,代码如下:public class MyThread extends Thread { private Object lock; private String showChar; private int showNumPosition; private int printCount = 0; volatile pri
C#线程的执行次序问题
下面的多线程源码,为什么每次执行出来的结果都不一样?rn[code=C#]rn///////////////////////////////////////////////////////////////////////rn///描述:使用lock关键字rn///////////////////////////////////////////////////////////////////////rnusing System;rnusing System.Threading;rnrninternal class Accountrnrn int balance;rn Random r = new Random();rnrn internal Account(int initial)rn rn balance = initial;rn rnrn internal int Withdraw(int amount)rn rn if (balance < 0)rn rn throw new Exception("Negative Balance");rn rn lock (this)rn rn Console.WriteLine("Current Thread:" + Thread.CurrentThread.Name+",balance:"+balance+",amount:"+amount);rnrn if (balance >= amount)rn rn Thread.Sleep(5);rn balance = balance - amount;rn return amount;rn rn elsern rn return 0;rn rn rn rnrn internal void DoTransactions()rn rn for (int i = 0; i < 100; i++)rn rn Withdraw(r.Next(-50, 100));//要执行1000次吗?rn rn rnrnrnrninternal class Testrnrn static internal Thread[] threads = new Thread[10];rnrn public static void Main()rn rn Account acc = new Account(0);rnrn for (int i = 0; i < 10; i++)rn rn Thread t = new Thread(new ThreadStart(acc.DoTransactions));rn threads[i] = t;rn rnrn for (int i = 0; i < 10; i++)rn rn threads[i].Name = i.ToString();rn rnrn for(int i = 0; i <10; i++)rn rn threads[i].Start();rn rnrn Console.ReadLine();rn rnrnrnrn[/code]
关于循环停止的问题
我有一个循环rn在btnbegin_click事件中rnwhile(true)rnrn//循环体:获取了一个资源,并处理rnrnrn我现在需要在btnend_click事件中完成当前的资源处理后终止,要怎么做呢rnrn能给个例子吗?
【※※ 循环+时间+停止 的问题! ※※】
大家好!rnrn我的数据库DB中有个T_Msg表, 里面有许多数据, 我需要把这些数据转移到另外的表中T_Msg1(表的格式和T_Msg一样), 需要用ASP的什么技术?rnrn主要问题:rnrn1。如果在一个页面a.asp中执行,可能需要很长时间,以致于页面停止: 失败rn2。需要时间控制,1秒钟传一条, 怎么控制?rnrnrn谢谢!
线程里面的程序循环执行问题
我想用线程循环扫描硬件io的状态,请问启动一下线程是不是就执行一次里面的程序?要想循环的话,采用死循环?还是外部循环启动线程?
C# 循环判断执行?????????????
mingling----这是一个变量,我把从网页源码中提取到的文字放到了mingling里,我试着用for循环来判断mingling 的值是不是“百度”,如果是就执行一次命令,就一次,结果还是失败了。。。哪位大哥能帮忙写个for循环我试着改改,奥,对了,timer控件一直在不停的获取网页源码和提取文字赋给minglingrn
JavaScript循环定时器问题
[code=JScript]rnrn rn rn秒钟rnrnrnrn[/code]rn目的是每隔1秒钟将input 的值加1,再填充到input,但是rn只运行一次,填充为0就不再加了,不变啦,有高手给个指点啊rn
09_定时器的重置和定时器的停止
近年来,区块链技术正在经历快速发展,并吸引了超过10亿美元的投资规模。而我们认为,最值得重视的是,区块链正在走进金融机构、大型企业、政府决策层的视野,大有从“草根力量”引发经济变革的态势。n现在很多企业,大学,政府开始着手区块链技术,而区块链目前很多在修改源码这块,源码现在用最多是Go语言,C++这块,目前在企业用的最多修改最多的是Go语言,所有区块链工作不得不会Go语言。nn
C# 线程系列三 定时器线程
上一篇文章我们讲诉了自定义线程执行器和任务处理器 我们继续来讲解自定义线程的定时执行器,我们在很多场景下需要做到某些状态或者数据进行更新,如果事情很多很杂,很时候时候会创建很多不同的定时器那么势必会照成系统的消耗和性能低下的问题!今天我们来解决这一问题。 首先我们创建定时任务执行器基类 1 /// &lt;summary&gt; 2 /// 3 /// &lt...
停止循环
for(int i=0;i<10;i++)rnrnif()rnrnrnrnelsernrn if()rn elsern break;(为什么停止不了循环?按这样的格式有什么办法可以停止这个循环?)rnrn rnrn
java线程停止问题
[code=Java][/code]rnrnrn/**rn * 停止线程rn */rnpublic class StopThread rn /** 线程对象 */rn private ThreadA thread = new ThreadA();rn /** 自定义线程类 */rn class ThreadA extends Threadrn //用一个boolean值标记线程是否需要运行。rn private boolean running = false;rn //覆盖了父类的start方法,rn public void start()rn //将running置为ture,表示线程需要运行rn this.running = true;rn super.start();rn rn public void run()rn System.out.println("ThreadA begin!");rn int i=0; rn try rn //如果running为真,说明线程还可以继续运行rn while (running)rn System.out.println("ThreadA: " + i++);rn //sleep方法将当前线程休眠。rn Thread.sleep(200);rn rn catch (InterruptedException e) rn rnrn System.out.println("ThreadA end!");rn rn public void setRunning(boolean running)rn this.running = running;rn rn rn /**rn * 启动ThreadA线程rn */rn public void startThreadA()rn System.out.println("To start ThreadA!");rn thread.start();rn rn /**rn * 停止ThreadA线程rn */rn public void stopThreadA()rn System.out.println("To stop ThreadA!");rn thread.setRunning(false);rn rn rn public static void main(String[] args) rn StopThread test = new StopThread();rn //启动ThreadA线程rn test.startThreadA();rn //当前线程休眠一秒钟rn try rn Thread.sleep(1000);rn catch (InterruptedException e) rn e.printStackTrace();rn rn //停止ThreadA线程rn test.stopThreadA();rn rnrnrnwhile(runing)不是个死循环了吗??
线程停止问题
procedure TForm1.Button1Click(Sender: TObject);  //开始rnbeginrn thread:=bb.Create(false);rnend;rnrnprocedure TForm1.Button2Click(Sender: TObject); //停止rnbeginrn thread.Free;rn thread.Terminaternend;rn我在完成第第三个步聚时按停止操作时,线程能完全停止,而是在从步聚一按停止时,线程并没有完成停止,而是再再执行下一步聚才能完全停止;请问如何解决。rn下面是线程的内容:rnprocedure bb.Execute;rnvarrni:integer;rnbeginrn i:=0;rn while not Terminated dorn beginrn form1.Memo1.Lines.Add('1:'+inttostr(i));  //步聚一rn i:=i+1;rn if terminated=true then exit;rn sleep(5000);rnrn form1.Memo1.Lines.Add('2:'+inttostr(i)); //步聚二rn i:=i+1;rn if terminated=true then exit;rn sleep(3000);rnrn form1.Memo1.Lines.Add('3:'+inttostr(i)); //步聚三 rn i:=i+1;rn if terminated=true then exit;rn sleep(3000)rnrn end;rnend;
线程停止的问题
用windows工具函数,rn枚举线程rnrnSuspendThread((HANDLE)te32.th32ThreadID);rn为什么线程停止不了呢?
线程中途停止的问题
[code=Java]rnThread t = new Thread()rn public void run()rn Thread th1 = new Thread();rn Thread th2 = new Thread();rn Thread th3 = new Thread();rn Thread th4 = new Thread();rn rn //这四个线程分别运行5秒rn rn try rn th1.start();rn th1.join();rn rn th2.start();rn th2.join();rn rn th3.start();rn th3.join();rn rn th4.start();rn th4.join();rn catch (InterruptedException e) rn e.printStackTrace();rn rn rn ;rn t.start();rn[/code]rn问一下:总线程t启动后,当运行th2过程中 怎样才可以把总线程t立即停止 我调用t.interrupt() 或者t.yield()语句后,它还是会继续执行th3线程和th4线程。rn但是当th4线程运行时候 我去调用t.interrupt()语句 t线程就会停止运行。rn
关于线程“停止”的问题
[code=Java]rnpublic void run() rn while (!stop) rn if (stay) //这部分是做暂停线程用的rn q++;rn try rn Thread.currentThread().sleep(1000);rn catch (InterruptedException e) rn e.printStackTrace();rn rn else rn continue;rn rn rnrn[/code]rn这时线程中的run方法,想知道怎么停止这个线程才算安全?rn在网上查的说是让run方法执行完了再结束它,那应该怎么判断呢?rn这里说的停止指的是完全停止,控制台也要停下来,完全销毁这个线程。rn现在这个只是个模型,以后可能要加入很多东西,想知道正确定制一个线程的安全方法是什么样的?谢谢 !
求助:for 多循环 逐条执行 并可以停止
求助,如何才能在执行一次run2(j)后,暂时10S,再执行run2(j+1).rn 当执行完一次start1()后,暂停1分钟,再执行下一次start1();rnrn用System.Threading.Thread.Sleep(1000) 的话,主窗口会没响应,有其它办法吗?rn如果能加入停止按扭,可以终止执行?rnrn谢谢。rnrn[code=csharp] private void button17_Click(object sender, EventArgs e)rn rn for (int i = 0; i < 10; i++)rn rn start1(); //循环十次rn MessageBox.Show("i is " + i);rn rn rn private void start1()rn rn for (int j = 0; j < 10; j++)rn rn run2(j); rn rn rnrn private void run2(int h)rn rn MessageBox.Show("h is " + h);rn rn rn [/code]
c#怎么停止线程池执行
很多程序放入线程池等待执行rnrn求关闭窗口的时候怎么停止线程池执行
KillerTimer停止不了定时器问题.
[color=#FF0000]start = SetTimer(hwnd, nidEvent, Interval, OnTickTimer);rnstart = KillTimer(hwnd, nidEvent);rnrnpublic void OnTickTimer(IntPtr hwnd, uint nMsg, int nIDEvent, int dwTime)[/color]rn用KillerTimer停止定时器停止不了,不知道有什么地方需要改动的。调试时[color=#00FF00]hwnd[/color]的值为0。rnrnrn
C#线程 重复执行
小弟现有这么一个需求rn带窗体的一个定时服务,然后到点的时候我执行一个更新方法,由于更新数据较多会很慢,导致界面卡住。rn所以我用了一个线程执行。现在考虑如果当第一次执行还没结束时,又开始执行第二次更新,就会出错。rn我想要的效果:如果第一次正常执行完毕,终止线程或者挂起。如果第二次再次执行的时候第一次还没结束的话,就重新执行这个更新方法。
定时器和线程的问题
今有两个计时器,计时器1在主程序里,计时器2在主程序将要加载的COM组件里,计时器1的时间间隔为500ms,计时器2的时间间隔为5000ms,计时器2执行操作所用的时间大于500ms,因此不能保证计时器1每隔500ms执行一次,现在打算把计时器2用一个线程来取代,但是计时器2所执行的操作在COM组件里,这样该怎样创建线程和使用线程,或者是否还有更好解决方法?望指点~
定时器(SetTimer)和线程 的问题
工程中我想做一个进度条表示进度rn发现有两种方法可以实现:定时器(SetTimer)和线程rn请问,这两种方式哪个最好?
关于线程问题和定时器
[code=C#]rnrn private Thread GetDataTimeTread = null;//定义线程rn private void Form1_Load(object sender, EventArgs e)rn rn GetDataTimeTread = new Thread(new ThreadStart(SubThread));rn GetDataTimeTread.Start(); rn rn private void SubThread()rn rn timer = null;rn timer = new System.Timers.Timer();rn timer.Interval = 1000;rn timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);rn timer.Start();rn rn private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)rn rn DateTime nt = DateTime.Now;rn if (nt.Minute > 20 && nt.Minute < 30)rn rn rn GetDataTime();//此方法执行时间在20-70 分钟左右rn rnrnrn我要做的是,每个小时定时执行一次GetDataTime()方法,rn我要问的是,当第一次执行GetDataTime()还没结束的时候,定时器又满足条件执行GetDataTime()时,rn 相互有什么干扰吗? 这样做可以达到我的要求吗? 或许有其他什么好方法呢?谢谢大家!rnrnrnrn[/code]
线程定时器的问题
#include rn#include rn#include rn#include rn#include rnusing namespace std;rntypedef unsigned (__stdcall *PTHREAD_START) (void *);rn#define chBEGINTHREADEX(psa, cbStack, pfnStartAddr, \rn pvParam, fdwCreate, pdwThreadId) \rn ((HANDLE)_beginthreadex( \rn (void *) (psa), \rn (unsigned) (cbStack), \rn (PTHREAD_START) (pfnStartAddr), \rn (void *) (pvParam), \rn (unsigned) (fdwCreate), \rn (unsigned *) (pdwThreadId))) rn rnrnDWORD WINAPI _ThreadProc(PVOID pvParam);rnHANDLE TimeHandle;rnint main()rnrn SYSTEMTIME stm;rn FILETIME ftLocal,ftUTC;rn LARGE_INTEGER liUTC;rn HANDLE ProcHandle;rn DWORD ThreadID;rn rn liUTC.QuadPart=-100000000;rn TimeHandle = CreateWaitableTimer(NULL,TRUE,NULL);rn cout<<"等待10秒....."<
WINCE 定时器线程问题
我在WINCE中处理完串口数据后,需要触发一个定时器来更新界面,但单步跟踪时发现该定时器无法触发,由此想到是不是因为串口本身就是一个线程,而线程中不能触发定时器操作?我用的是TIMER控件。该怎么解决这个问题,希望大虾能给予帮助啊
线程和定时器的问题
如果我在控制台程序里生成一个线程,线程在启动时会使用SetTimer设定定时器,在主程序里面也有一个定时器,由于我的程序是控制台程序,所以没有窗口,SetTimer的第一个参数为NULL,现在我关心的是主程序的定时器和线程里面的定时器会不会相互干扰。谁知道这个问题阿,兄弟姐妹们
线程中定时器问题
请教:rn 我要完成一个操作,每隔一段时间要检测接口状态,我新开了一个线程做这个工作,在这个线程中设了个定时器,每隔10秒去检测接口状态,具体代码如下(如下代码是在新开的线程中执行):rn HANDLE m_hTimeHandle = NULL;rn LARGE_INTEGER liDueTime;rn BOOL bResult;rnrn //定时器定10秒rn liDueTime.QuadPart = -100000000;rn //创建waitable timerrn m_hTimeHandle = CreateWaitableTimer(NULL, TRUE, NULL);rn rn //设置定时时间rn bResult = SetWaitableTimer(m_hTimeHandle, &liDueTime, 0, NULL, NULL, 0); rnrn //等待对象产生信号rn DWORD dwState = WaitForSingleObject(m_hTimeHandle, INFINITE);rn if (dwState != WAIT_OBJECT_0)rn rn return 0;rn rn elsern rn 检测接口状态过程..rn rn在运行中,发现该定时器在线程中只运行一次,请各位指点,难道是运行一次线程就结束了?应该怎么解决,在线等,谢谢。
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法