iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >.NET提取 Thread 中返回值详情
  • 755
分享到

.NET提取 Thread 中返回值详情

2024-04-02 19:04:59 755人浏览 八月长安
摘要

目录一、.net 2.0+二、.NET 4.0 +三、.NET 4.5 +以下文章来源于公众号DotNetCore实战  Igor Bendrup: 关于如何获取 Thre

以下文章来源于公众号DotNetCore实战 

Igor Bendrup:

关于如何获取 Thread 中的返回值,不同的版本有不同的解决方案。

一、.NET 2.0+

你可以直接使用 Thread 对象,然后你可以使用闭包(声明变量并在 lambda 中捕获它),参考如下代码:

object result = null;
Thread thread = new System.Threading.Thread(() => { 
    //Some work...
    result = 42; });
thread.Start();
thread.Join();
Console.WriteLine(result);

也可以使用 IAsyncResult 然后在EndInvoke() 方法中获取返回值。

BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += (s, e) => {
    //Some work...
    e.Result = 42;
};
worker.RunWorkerCompleted += (s, e) => {
    //e.Result "returned" from thread
    Console.WriteLine(e.Result);
};
worker.RunWorkerAsync();
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += (s, e) => {
    //Some work...
    e.Result = 42;
};
worker.RunWorkerCompleted += (s, e) => {
    //e.Result "returned" from thread
    Console.WriteLine(e.Result);
};
worker.RunWorkerAsync();

还可以使用传统的 BackgroundWorker,然后在 RunWorkerCompleted  事件中捕获。

二、.NET 4.0 +

从 .NET 4.0 开始,你可以通过 Task 的方式开启 Thread,如果想获取返回值可以提取 Task 中的 Result

如下代码:

//Main thread will be blocked until task thread finishes
//(because of obtaining the value of the Result property)
int result = Task.Factory.StartNew(() => {
    //Some work...
    return 42;}).Result;

三、.NET 4.5 +

从 .NET 4.5 开始, 你可以使用 await,async 的方式替代 Task Result 属性,参考如下代码:


int result = await Task.Run(() => {
    //Some work...
    return 42; });

建议:用 Task 来替代传统 Thread 所做的事情。

到此这篇关于.NET提取 Thread 中返回值详情的文章就介绍到这了,更多相关.NET提取 Thread 中返回值内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: .NET提取 Thread 中返回值详情

本文链接: https://www.lsjlt.com/news/161868.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • .NET提取 Thread 中返回值详情
    目录一、.NET 2.0+二、.NET 4.0 +三、.NET 4.5 +以下文章来源于公众号DotNetCore实战  Igor Bendrup: 关于如何获取 Thre...
    99+
    2024-04-02
  • .NET提取Thread返回值的方法是什么
    这篇文章主要介绍“.NET提取Thread返回值的方法是什么”,在日常操作中,相信很多人在.NET提取Thread返回值的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”.NET提取Thread返回值...
    99+
    2023-06-26
  • jmeter怎么提取数据库返回值
    要在JMeter中提取数据库返回值,可以使用以下步骤:1. 添加“JDBC Connection Configuration”元件:...
    99+
    2023-08-15
    jmeter 数据库
  • C# 函数返回多个值的方法详情
    目录引言1.使用ref参数2.使用out参数修饰符3. 使用元组类4.使用C#7 ValueTuple5. 使用结构或类引言 根据 C# 语言规范,不可能从一个方法返回多个值。使用 ...
    99+
    2024-04-02
  • jmeter如何提取上一个接口返回值
    JMeter可以使用正则表达式提取上一个接口返回值。以下是提取上一个接口返回值的步骤:1. 在JMeter中,添加一个正则表达式提取...
    99+
    2023-08-30
    jmeter
  • C语言函数调用约定和返回值详情
    目录 一、函数调用约定1. 影响函数生成的符号名2. 影响形参内存的释放者_stdcall_fastcall_thiscall二、函数的返回值1. 0 < 返回值 &...
    99+
    2024-04-02
  • C#中怎么用invoke获取返回值
    在C#中可以使用Invoke方法来调用一个方法或委托,并获取其返回值。Invoke方法是Delegate类的成员,可以用于调用任何类...
    99+
    2023-10-23
    C# invoke
  • C++中Covariant返回值类型详解
    目录前言什么是协变返回值类型(Covariant)协变返回值类型(Covariant)的作用前言 C++中当子类覆写(override)父类虚函数时,子类函数的返回值类型可以和父类函...
    99+
    2024-04-02
  • C# 提取PDF中的表格详情
    目录1、简单介绍2、环境配置3、代码示例1、简单介绍 本文介绍在C#程序中(附VB.NET代码)提取PDF中的表格的方法,调用Spire.PDF for .NET提供的提取表格的 类...
    99+
    2024-04-02
  • 详解Python获取线程返回值的三种方式
    目录方法一方法二方法三最后的话提到线程,你的大脑应该有这样的印象:我们可以控制它何时开始,却无法控制它何时结束,那么如何获取线程的返回值呢?今天就分享一下自己的一些做法。 方法一 使...
    99+
    2024-04-02
  • Python获取协程返回值的四种方式详解
    目录介绍源码依次执行结果介绍 获取协程返回值的四种方式: 1、通过ensure_future获取,本质是future对象中的result方 2、使用loop自带的create_tas...
    99+
    2024-04-02
  • 如何在Java中使用executeQuery()获取返回值
    在Java中使用executeQuery()方法获取查询结果需要以下步骤:1. 创建一个数据库连接对象,例如使用JDBC连接数据库:...
    99+
    2023-09-28
    Java
  • Django中get()和filter()返回值区别详解
    先上官方文档! filter(**kwargs) 返回包含与给定查找参数匹配的对象的新查询集。 简单来说,返回一个又对象组成的查询集合 get(**kwargs) 返回与给定查找...
    99+
    2024-04-02
  • python中函数的返回值及类型详解
    目录1.返回值介绍2.带有返回值的函数3.保存函数的返回值4.四种函数的类型1.无参数,无返回值的函数2.无参数,有返回值的函数3.有参数,无返回值的函数4.有参数,有返回值的函数5...
    99+
    2023-05-14
    python函数返回值 python 返回值类型
  • 详解C++ 运算符重载中返回值的坑
    相信不少朋友在学习运算符重载的时候,都会被参数与返回值应该是左值引用,还是右值引用,还是const常量所困扰。当然我无法一一枚举,这次先讲一下返回值的坑 (没错就是我亲手写的bug)...
    99+
    2024-04-02
  • python如何定义函数返回值只取其中一个
    小编给大家分享一下python如何定义函数返回值只取其中一个,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!看代码吧~def test():    return 1...
    99+
    2023-06-15
  • java中有无参数和返回值的方法详解
    目录java有无参数和返回值以下的例子要细细查看方法的返回值和参数1、返回值2、参数java有无参数和返回值 首先,定义一个土豪类(LocalTyrant) 属性:name moen...
    99+
    2024-04-02
  • Python结构化字符串中提取数据详情
    目录前言从结构化字符串中提取数据字符串解析前言 在许多自动化任务中,我们都需要从已知格式结构化的输入文本中提取相关信息。例如,我们可能需要在一段电影评论数据中提取观影时间、电影名、评...
    99+
    2024-04-02
  • 详解Vue返回值动态生成表单及提交数据的办法
    目录主要解决的问题一、后端返回的数据,提交到后端的数据格式如下:二、vue前端代码如下:总结 主要解决的问题 1、vue在循环的时候需要动态绑定不同的v-model;vue动态的表单...
    99+
    2024-04-02
  • python多线程中获取函数返回值的三种方法
    目录方法一:使用队列方法二: 封装 threading.Thread,重写 run 方法方法三:使用进程池方法一:使用队列 import queue import threading...
    99+
    2023-03-01
    python多线程获取函数返回值 python多线程获取返回值
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作