首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不同的应用程序和线程线程(是否)?

不同的应用程序和线程线程(是否)?
EN

Stack Overflow用户
提问于 2014-06-23 13:22:31
回答 1查看 70关注 0票数 2

我用这个简单的代码测试了不同的项目:( 2010 ,4.5.1)

代码语言:javascript
复制
bool a, b;
new Thread(() => { a = Thread.CurrentThread.IsThreadPoolThread; }).Start();
Task.Factory.StartNew(() => { b = Thread.CurrentThread.IsThreadPoolThread; });

我想知道哪些项目使用线程池线程,哪些项目不使用:(作为默认值(!)没有LongOperation交换机的调用)

因此:

WPF

-不使用线程池线程。

控制台

-不使用线程池线程。

Winform

-不使用线程池线程。

Asp.net

-用于Task

这实际上是我最不愿意考虑的地方-- asp.net使用线程池线程来执行任务。(每个线程池线程对于服务其他请求都很重要)

问题

为什么在创建/运行新任务时只有asp.net使用线程池线程?(而且,Tp线程是宝贵的资源)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-23 13:29:50

它们都使用线程池线程,您没有等待足够长的时间来运行代码。您需要在线程版本上执行.Join(),在任务版本上执行.Wait(),以便在检查ab的结果之前等待代码完成。

代码语言:javascript
复制
bool a, b;
new Thread(() => { a = Thread.CurrentThread.IsThreadPoolThread; }).Start().Join();
Task.Factory.StartNew(() => { b = Thread.CurrentThread.IsThreadPoolThread; }).Wait();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24367093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档