C#定时检查子线程是否执行完成(定时器检查)

By | 03月09日
Advertisement

定时器定时去检验子线程是否执行完成。如果完成关闭定时器,继续执行别的方法。

        private volatile static FileReadManager uniqueInstance;
        private Timer _FileReadTimer = null;
        private Timer _PriorityFileReadTimer = null;
        //定时器开始调用的方法
        public void Start()
        {
            try
            {
                _FileReadTimer = new System.Timers.Timer();
                //多长时间去检查一次(1000毫秒=1秒)
               _FileReadTimer.Interval = 10000;
                _FileReadTimer.Elapsed += new ElapsedEventHandler(FileRead);
                _FileReadTimer.Start();

            }
            catch (Exception ex)
            {
                LogHelper.WriteError(ex, "启动文件读取定时器");
            }
        }

        public void Stop()
        {
            try
            {
                if (_FileReadTimer != null)
                {
                    _FileReadTimer.Stop();
                    _FileReadTimer.Close();
                }
            }
            catch (Exception ex)
            {
                LogHelper.WriteError(ex, "停止文件读取定时器");
            }
        }

        private void FileRead(object obj, ElapsedEventArgs e)
        {
            try
            {
                _FileReadTimer.Stop();
                _FileReadTimer.Close();
               //需要检查多个单线程是否执行完成的方法

               //子线程1

               //子线程2

               //子线程3
            }
            catch (Exception ex)
            {
                LogHelper.WriteError(ex, "文件读取定时器方法");

            }
            finally
            {
                _FileReadTimer.Start();
            }
        }

Similar Posts:

  • 用Lock和Condition,实现主线程执行5次,子线程再执行10次,孙线程执行15次,如此反复5次

    package test1; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * 用Lock和Condition,实现主线程执行5次,子线程再执行10次,孙线程执行15次,如此反复5次 * * 设计思想: * 业务类Business中,设计3个方法,每个方法代表主.子.孙

  • 等子线程Thread执行完之后再执行mian线程的UI更新等等

    我想打一下1,2,3.然后我这么写 </pre><pre name="code" class="java">System.out.println(1); Thread thread=new Thread(new Runnable() { public void run() { System.out.println(2); } }); thread.start(); System.out.println(3); 结果打印出来是 1,3,2.我就

  • 面试题,子线程10次子线程2执行20次与主线程100次来回循环执行50次

    // 面试题,子线程2执行10次子线程2执行20次 与主线程100次来回循环执行50次 public class interview { public static void main(String[] args) { final Business b = new Business(); new Thread(new Runnable(){ @Override public void run() { for (int i = 1; i <= 50; i++) { b.sub2(i); } } }

  • Java主线程等待子线程执行完毕-CountDownLatch

    主线程: //Main主线程 public class MainThread { public static void main(String[] args) throws InterruptedException { long startTime = System.currentTimeMillis(); int threadNum = 5; //线程数 //定义正在运行的线程数 CountDownLatch runningThreadNum = new CountDownLatch(thre

  • Android4.0网络操作必须放在子线程中

    好久没写技术博客了.关于为什么这么久没写,是因为写伤了.写过几篇博客后,深刻感觉到要把博客写好是一件很累的事情,花的时间也肯定不会少.记得前段时间写Android中Activity四种启动模式和taskAffinity属性详解这篇博客,前前后后写了一个星期,从那之后真有点怕写这么长的博客了.所以, 以后尽可能不写这种总结性的,篇幅较长的博客,因为自己水平真的有限,写这种长博客太累, 写了之后别人还不见得有耐心读完.另一方面, 写这种长博客花的时间和精力太多, 很累人,并且只能下了班之后抽晚上的时

  • 在子线程中发送短信,静态注册SentMsgReceiver。

    1. 应该在子线程中执行发送短信的操作. 如果没有在子线程中发送短信会出现错误:点击发送短信之后,立即跳转到其他界面,那么这次发送短信可能就会失败! 请注意往子线程方法中传入外部的实参必须由final修饰. private void performSendMessage(final String content) { if(content.length()==0) { Toast.makeText(mContext, "can't send a blank msg.", Toast.L

  • [原] 主线程等待子线程结束(多线程结束标识)

    class Program { private static int iCount = 0; private static int iThreads = 5; private static List<Thread> th = new List<Thread>(); public static ManualResetEvent[] manualEvents = new ManualResetEvent[iThreads]; static void Main(string[] args

  • java经典面试题-主子线程交换执行,往复50次(非静态内部类实现)

    package ahut.edu.cn; /** * 创建两个线程,主线程循环十次,子线程循环一百次,紧接着主线程循环十次, * 子线程循环一百次,如此往复五十次. * 考察的是线程间的通信问题,意思就是:我拿着锁的时候你不能进来,等我告诉你 * 你可以执行的时候你才能执行. * @author cai.zhiming * */ public class Demo3 { private boolean flag = true; public static void main(String[] a

  • 子线程和主线程的通信问题

    题目: 子线程循环执行100次,接着到主线程执行20次,然后又到子线程执行100次,再到主线程执行20次,如此交替循环50次,请写出程序. 分析: 首先从这道题中我们要明确一点,就是程序中只有一个子线程和主线程在运行: 其次是子线程和主线程直接会进行通信:子线程执行完了,要通知主线程执行,主线程执行完成后要告诉子线程执行 自然子线程和主线程要进行通信,那么就涉及到数据是否同步的问题? 好了,通过上面的分析,可以把简单的代码贴出来了. package com.ishow.thread; publi

  • android中UI主线程与子线程深入分析

    本文较为深入的分析了android中UI主线程与子线程.分享给大家供大家参考.具体如下: 在一个Android 程序开始运行的时候,会单独启动一个Process.默认的情况下,所有这个程序中的Activity或者Service(Service和 Activity只是Android提供的Components中的两种,除此之外还有Content Provider和Broadcast Receiver)都会跑在这个Process. 一个Android 程序默认情况下也只有一个Process,但一个Pr

Tags: