//timer 开辟新线程,不占用主线程

private void timer1_Tick_1(object sender, EventArgs e)
        {

//开辟新线程,不占用主线程
            Thread t = new Thread(new ThreadStart(delegate
            {
                timer1.Stop();
                while (true)
                {
                    Console.WriteLine("in timer1_Tick_1");
                    if (result.Count >= number)
                    {
                        Console.WriteLine("result.Count = " + result.Count);
                        Console.WriteLine("start saving");
                        for (int i = 0; i < result.Count; i++)
                        {
                            dt.AirwayTables.InsertOnSubmit(result[i]);
                            //Console.WriteLine(result[i].TimeTick + " has benn saved!");
                        }
                        dt.SubmitChanges();
                        Console.WriteLine("Saved");
                        result = new List<AirwayTable>();
                    }
                    Application.DoEvents();
                    Console.WriteLine("out timer1_Tick_1");
                    Thread.Sleep(1000);
                }
            }));
            t.Start();
        }

http://www.cnblogs.com/liuxinls/archive/2013/03/27/2985215.html

时间: 2024-12-11 14:08:19

//timer 开辟新线程,不占用主线程的相关文章

如何在Android中判断某个线程是否是主线程

转帖: http://droidyue.com/blog/2014/07/12/check-main-thread-in-android-chinese-edition/ 如何在Android中判断某个线程是否是主线程?对于这个问题,你可能说根据线程的名字,当然这个可以解决问题,但是这样是最可靠的么?万一某天Google一下子将线程的名字改称其他神马东西呢. 方法揭晓 下面的方法是最可靠的解决方案. public static boolean isInMainThread(){ return L

可动态增减的线程池,主线程accept——基于UNP代码修改

可动态增减的线程池,主线程accept——基于UNP代码修改 1.说明 线程池基于一个区间动态变化,在客户连接过多线程不够用时,动态增加一定数量的线程.在线程闲置数量多于一半时,动态减小线程数量到一个基准线. 这个例子模式为:半同步/半异步(half-sync/half-async) 2.代码相关说明 代码基于UNP的库函数,要想运行必须先安装相应库. 3.代码 #include "unpthread.h" #include <queue> #include <lis

Android Handler 异步调用修改界面与主线程

在Android编程的过程中,如果在Activity中某个操作会运行比较长的时间,比如:下载文件.这个时候如果在主线程中直接下载文件,会造成Activity卡死的现象:而且如果时间超过5秒,会有ANR报错. 在这种情况下, 可以使用Handler来处理. 涉及到的类主要有:Handler.Thread.Message.MessageQueue.Looper.HandlerThread 如果是针对上面的情况,可以只使用Handler.Message和Thread就可以解决.在Thread中处理下载

Java知多少(57)主线程

当Java程序启动时,一个线程立刻运行,该线程通常叫做程序的主线程(main thread),因为它是程序开始时就执行的.主线程的重要性体现在两方面: 它是产生其他子线程的线程: 通常它必须最后完成执行,因为它执行各种关闭动作. 尽管主线程在程序启动时自动创建,但它可以由一个Thread对象控制.为此,你必须调用方法currentThread()获得它的一个引用,currentThread()是Thread类的公有的静态成员.它的通常形式如下:    static Thread currentT

iOS中NSThread(主线程,子线程)

#import "AppDelegate.h" @interface AppDelegate () { NSInteger _totalTickests; } @property (nonatomic, retain) NSLock *lock; @end @implementation AppDelegate - (void)task1 { NSLog(@"当前线程:%@,是否是主线程:%d",[NSThread currentThread],[[NSThread

Java多线程系列--“基础篇”10之 线程优先级和守护线程

概要 本章,会对守护线程和线程优先级进行介绍.涉及到的内容包括:1. 线程优先级的介绍2. 线程优先级的示例3. 守护线程的示例 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3479982.html 1. 线程优先级的介绍 java 中的线程优先级的范围是1-10,默认的优先级是5.“高优先级线程”会优先于“低优先级线程”执行. java 中有两种线程:用户线程和守护线程.可以通过isDaemon()方法来区别它们:如果返回false,则说明该线程

在子线程中操作主线程

当android启动Activity时,会先启动一个主线程(也称为UI线程),用于控制Activity的当前View界面,在主线程控制的过程中,子线程是不能直接更新主线程数据的,但是android中提供了很多其他线程操作UI线程的方法 方法一:Activity.runOnUiThread( Runnable) 这是一个在子线程中设置主线程中TextView的实例: NeedVerify.this.runOnUiThread(new Runnable() { public void run() {

Java多线程(十)——线程优先级和守护线程

一.线程优先级的介绍 java 中的线程优先级的范围是1-10,默认的优先级是5.“高优先级线程”会优先于“低优先级线程”执行. java 中有两种线程:用户线程和守护线程.可以通过isDaemon()方法来区别它们:如果返回false,则说明该线程是“用户线程”:否则就是“守护线程”.用户线程一般用于执行用户级任务,而守护线程也就是“后台线程”,一般用来执行后台任务.需要注意的是:Java虚拟机在“用户线程”都结束后会后退出. JDK 中关于线程优先级和守护线程的介绍如下: 每个线程都有一个优

Android ActivityThread(主线程或UI线程)简介

1. ActivityThread功能 它管理应用进程的主线程的执行(相当于普通Java程序的main入口函数),并根据AMS的要求(通过IApplicationThread接口,AMS为Client.ActivityThread.ApplicationThread为Server)负责调度和执行activities.broadcasts和其它操作. 在Android系统中,在默认情况下,一个应用程序内的各个组件(如Activity.BroadcastReceiver.Service)都会在同一个