c#线程问题,创建一个线程,有两个方法,一个方法启动这个线程,另一个方法关闭这个线程,能举例最好

如题所述

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace ConsoleApplication25
{
    class Program
    {
        static void Main(string[] args)
        {
            var demo = new ThreadDemo();
            demo.StartThread();
            Thread.Sleep(5000);
            demo.StopThread();
            Console.ReadKey();
        }


    }
    class ThreadDemo
    {
        Thread thread;
        private void TaskLoop()
        {
            int i = 0;
            while (true)
            {
                Console.WriteLine(i++);
                Thread.Sleep(1000);
            }

        }

        /// <summary>
        /// 开始线程,注意一次只能开启一个.
        /// 需要多个请用list扩展
        /// </summary>
        public void StartThread()
        {
            ///请根据情况设定清理条件
            if (thread != null && thread.ThreadState == ThreadState.Running)
            {
                StopThread();
            }
            thread = new Thread(new ThreadStart(TaskLoop));
            thread.Start();
        }
        public void StopThread()
        {
            thread.Abort();
            thread = null;
        }
    }
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-01-21
在构造函数里面new一个出来 线程里面要对应执行方法 两个方法分别是start 和释放或者挂起

c#线程问题,创建一个线程,有两个方法,一个方法启动这个线程,另一个方...
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;namespace ConsoleApplication25{ class Program { static void Main(string[] args) { var demo = new ThreadDemo(); demo.StartThread(); ...

c#中如何让一个按钮去启动一个线程,点另外个按钮就能停止线程?
这个需要用到后台线程执行,否则一运行主线程就卡住了:public partial class Form1 : Form { \/\/ 打印放在后台执行 BackgroundWorker m_Worker;\/\/ 用一个标记来看是否请求停止执行 bool m_NeedRun = false;public Form1(){ InitializeComponent();m_Worker = new BackgroundWorker();m_Worker.DoWor...

在C#中如何关闭线程
线程没有实例化这个概念,只有启动,停止,暂停等方法, 每个线程都会有一个名字,调用每个线程的 Abort() 方法就可以停止该线程了。补充:你的变量名是在哪里声明的? 如果要在另一个按钮事件中也能访问,必须声明为类的变量。

C#线程启动,暂停,恢复,停止怎么实现
public void 线程方法() { }public void 新线程(){ Thread td = new Thread(线程方法); \/\/新建线程,并设定线程开始的方法 td.Start(); \/\/启动线程 td.Suspend(); \/\/休眠线程 td.Resume(); \/\/恢复线程 td.Abort(); \/\/终止线程}满意请采纳,谢谢。

c#启动和结束线程的问题
1.对于ASP.net,在Session_Start里面启动线程是不好的设计,因为很多情况下(比如搜索引擎的爬虫抓取),每次访问都会导致新建一个Session,这样情况下线程很快会被用光的。ASP.net的页面处理全部依赖于线程池,而线程池中线程的数目和创建数量都是有限制的。2.一个线程应该有穷,也就是说执行完毕就应该...

c#线程之前台线程后台线程及使用
(1)、CLR第一次初始化时,线程池并没有线程,当应用程序调用异步代码执行一个方法时,会将该请求记录项加入到操作请求队列中,线程池的代码从这个队列中获取记录项,并派发给线程池线程,接着 线程池会创建线程,当然这里会有性能开销,但是当该线程执行完毕之后,线程池会回收这个线程,这里注意:线程池不会...

c#中一个解决方案 里面两个程序 怎么一个启动另一个?
Systm.Diagnostics.Process.Start("B的应用程序所在路径,如C:\\\\calc.exe");

c#怎么控制一个方法执行的时间,超过时间之后跳过该方法
开两个线程,一个做事,一个监督,超时,强制停止线程。

C#多线程 一个缓冲队列,一个生产者线程,一个消费者线程,这两个线程同...
加互斥锁的目的,是解决多线程访问同一资源而产生不可预期的异常,那么你现在是一个线程只负责插入,另一线程负责查询和删除,查询和删除跟插入没有关系的话,那么显然是不需要线程锁的,你要是问隐患的话,那么由于多线程或者多用户的原因,频繁操作几张相关表,可能造成数据库的表死锁。

C# 中我有两个方法,一个是关闭WORD文档的。
先调用关闭的方法;再调用删除的方法;单线程,由上而下挨个执行,不会出现你说的异常情况。除非你关闭的方法本身就出错了,没有关闭成功。

相似回答