c#启动和结束线程的问题

如何在session_Start里面启动一个线程,然后在Session_end里面终止该线程?
请给出示例代码,谢谢。

第1个回答  推荐于2016-11-27
从ThreadPool中直接取出一个新线程使用就可以了ThreadPool.QueueUserWorkItem() 函数来启动一个新的线程。
或直接新建一个Thread然后启动它,但是这样如何去记录这个线程是有讲究的,也许你需要建立一个全局静态的字典来记录SessionID和对应的线程,然后在Session_End事件里面根据SessionID查找对应的线程。

提示:
1.对于ASP.net,在Session_Start里面启动线程是不好的设计,因为很多情况下(比如搜索引擎的爬虫抓取),每次访问都会导致新建一个Session,这样情况下线程很快会被用光的。ASP.net的页面处理全部依赖于线程池,而线程池中线程的数目和创建数量都是有限制的。
2.一个线程应该有穷,也就是说执行完毕就应该退出而不应该长期占用资源(除了主线程),所以在Session_End中销毁是不好的设计,也会导致异常的抛出。本回答被提问者采纳
第2个回答  2009-12-24
Thread td=new Thread(new ThreadStrat(方法名));
td.Start();

td.Abort();
第3个回答  2009-12-23
如何创建和启动线程?
Threading ThreadStart

c#启动和结束线程的问题
2.一个线程应该有穷,也就是说执行完毕就应该退出而不应该长期占用资源(除了主线程),所以在Session_End中销毁是不好的设计,也会导致异常的抛出。

c#线程问题,创建一个线程,有两个方法,一个方法启动这个线程,另一个方...
while (true) { Console.WriteLine(i++); Thread.Sleep(1000); } } \/\/\/ \/\/\/ 开始线程,注意一次只能开启一个. \/\/\/ 需要多个请用list扩展 \/\/\/ public void StartThread() { \/\/\/请根据情况设定清理条件 if (thread != null && thread.ThreadStat...

C# 停止线程的问题
你的代码逻辑我是这样理解的,遍历N个线程,如果线程状态不是stopped,就终止该线程 那你可以这样:private void Stop_Click(object sender, EventArgs e){ foreach (Thread threada in thread){ \/\/如果线程状态不为stopped,执行if里的业务逻辑代码 if (threada.ThreadState != ThreadState.Stopped){...

c# 线程 其他信息: 线程正在运行或被终止;它无法重新启动.
提示异常:线程正在运行或被终止;它无法重新启动。

c# .net 一条线程 abort 之后,怎么重启启动。
回答:abort 就不能重启了,要暂停线程,还是用Suspend方法吧,继续的时候用Resume方法。 线程开始: thread.Start(); 线程挂起 thread.Suspend(); 线程继续 thread.Resume(); 线程终止 thread.Abort();

c#如何开始运行多分钟启动线程多少分钟之后后关闭
使用Timer类实现多分钟启动线程多少分钟之后关闭的步骤如下:1、可以使用Timer类来实现这一功能,Timer类提供了一个指定的时间间隔,在指定的时间之后,可以定期调用一个指定的方法。2、使用Timer类创建一个Timer对象,并设置要运行的时间间隔(以毫秒为单位)。3、在Timer对象的Timer.Elapsed事件处理程序中...

C# 线程关闭程序结束所有线程
最好记录下你所有开启的线程,当结束的时候结束这些线程。这样还可以有机会比较优雅的结束线程。一般来说 从入口函数main函数退出后进程就结束了。进程结束,默认的后台线程就结果了,所以将你的线程都标记为后台线程就可以了。最后可以试试Environment.Exit吧。

C#中的多线程问题用于什么地方?怎么掌握?
6.挂起,睡眠(都可称为--阻塞,暂停)与Thread.Sleep 不同,Thread.Suspend 不会使线程立即停止执行。直到线程到达安全点之后它才可以将该线程挂起。如果线程尚 未启动或已经停止,则它将不能挂起。调用 Thread.Resume 将使另一个线程跳出挂起状态并使该线程继续执行。一个线程不能对另一个线程调用...

我在做一个多线程的程序,用C#写的,可是为什么我关闭了所有窗口以后,应 ...
1. 启动线程时记录所有线程,然后在窗口都退出后结束这些线程 2 将你的线程设置为后台线程(IsBackground = true),这样窗口都退出后这些线程会自动结束。3 或是来个狠点的 System.Environment.Exit 1. 最好,但代码会有一点多,还有Application .exit 是退出消息泵,关闭窗口的,跟关闭线程没有多大...

c#线程停止
c#线程停止方法:1.我们需要在C#代码中添加Thread类,就可以开始设置。2.然后我们就能在这里就能设置,设置ThreadStart类进行实例化。3.此时我们就可以在这里启动并且和状态在执行,这是前提。4.因此我们就可以在这里对Thread对象,进行中止操作。5.为了程序的友好性,我们可以在这里输出一条提示。6.此时我们...

相似回答