Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在powershell中获取.Net对象异步方法的结果

在powershell中获取.Net对象异步方法的结果
EN

Stack Overflow用户
提问于 2014-09-15 15:34:11
回答 3查看 10K关注 0票数 16

我尝试在Powershell中实例化的.Net对象上调用异步方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Add-Type -Path 'my.dll'

$myobj = new-object mynamespace.MyObj()

$res = $myobj.MyAsyncMethod("arg").Result

Write-Host "Result : " $res

在执行脚本时,尽管检查返回值表明它是正确的类型(Task<T>),但shell似乎不等待MyAsyncMethod().Result,也不显示任何内容。其他各种尝试,如中间变量、Wait()等,都没有结果。

我在网上找到的大多数东西都是关于从C#异步调用Powershell脚本的。我想反其道而行之,但似乎没有人有兴趣这样做。这是可能的吗?如果不可能,为什么?

EN

回答 3

Stack Overflow用户

发布于 2016-09-01 10:50:45

我知道这是一个非常老的线程,但它可能是你实际上从异步方法中得到了一个错误,但它被吞噬了,因为你正在使用.Result

尝试使用.GetAwaiter().GetResult()而不是.Result,这将导致出现任何异常。

票数 15
EN

Stack Overflow用户

发布于 2017-11-03 12:16:28

对于长时间运行的方法,请使用PSRunspacedDelegate模块,该模块将使您能够异步运行任务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$task = $myobj.MyAsyncMethod("arg");
$continuation = New-RunspacedDelegate ( [Action[System.Threading.Tasks.Task[object]]] { 
    param($t)

    # do something with $t.Result here
} );

$task.ContinueWith($continuation);

参见documentation on GitHub。(免责声明:我写的)。

票数 4
EN

Stack Overflow用户

发布于 2014-10-18 23:11:54

这对我很有效。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Add-Type -AssemblyName 'System.Net.Http'

$myobj = new-object System.Net.Http.HttpClient

$res = $myobj.GetStringAsync("https://google.com").Result

Write-Host "Result : " $res

也许可以检查一下是否将PowerShell配置为使用.NET 4:

How can I run PowerShell with the .NET 4 runtime?

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25851704

复制
相关文章
Future:异步任务结果获取
我们之前说过如何正确创建线程池,我们详细介绍了怎么合理使用线程池,我们也只是介绍了 ThreadPoolExecutor的void execute(Runnable command)方法,利用这个我们可以提交任务,让线程去消费处理,但是没有办法获取任务的执行结果。因为该方法没有返回值。而有一些场景我们需要获取任务的执行结果再判断逻辑。
码哥字节
2020/03/24
2.2K0
Future:异步任务结果获取
.NET Remoting 体系结构 之 在远程方法中传递对象
远程方法调用中的参数类型不仅可以是基本的数据类型,还可以是我们自己定义的类。为了进 行远程处理,必须区分下面 3 种类型的类:
DougWang
2020/02/17
1.1K0
在 .NET 中创建对象的几种方式的对比
在 .net 中,创建一个对象最简单的方法是直接使用 new (), 在实际的项目中,我们可能还会用到反射的方法来创建对象,如果你看过 Microsoft.Extensions.DependencyInjection 的源码,你会发现,为了保证在不同场景中的兼容性和性能,内部使用了多种反射机制。在本文中,我对比了常见的几种反射的方法,介绍了它们分别应该如何使用,每种的简易度和灵活度,然后做了基准测试,一起看看这之间的性能差距。
全球技术精选
2021/07/23
2.2K0
在 .NET 中创建对象的几种方式的对比
.NET中的异步编程下
2、Task类 Task类是封装的一个任务类,内部使用的是ThreadPool类,提供了内建机制,让你知道什么时候异步完成以及如何获取异步执行的结果,并且还能取消异步执行的任务。下面看一个例子是如何使用Task类来执行异步操作的。 class Program { static void Main(string[] args) { Task t = new Task((c) => {
逸鹏
2018/04/10
9300
.NET中的异步编程上
开篇 异步编程是程序设计的重点也是难点,还记得在刚开始接触.net的时候,看的是一本c#的Winform实例教程,上面大部分都是教我们如何使用Winform的控件以及操作数据库的实例,那时候做的基本都是数据库的demo,数据量也不大,程序在执行的时候基本上不会出现阻塞的情况。随着不断的深入.net,也开始进入的实战,在实际的项目,数据量往往都是比较大,特别是在大量的数据入库以及查询数据并进行计算的时候,程序的UI界面往往卡死在那里,发生了阻塞,这时候就需要对计算时间限制的过程进行异步处理,让UI线程继续相应
逸鹏
2018/04/10
1.2K0
.NET中的异步编程上
对象池在 .NET (Core)中的应用[2]: 设计篇
《编程篇》已经涉及到了对象池模型的大部分核心接口和类型。对象池模型其实是很简单的,不过其中有一些为了提升性能而刻意为之的实现细节倒是值得我们关注。总的来说,对象池模型由三个核心对象构成,它们分别是表示对象池的ObjectPool<T>对象、对象值提供者的ObjectPoolProvider对象,已及控制池化对象创建与释放行为的IPooledObjectPolicy<T>对象,我们先来介绍最后一个对象。
蒋金楠
2021/08/31
1.5K0
对象池在 .NET (Core)中的应用[2]: 设计篇
Spring中的AOP——在Advice方法中获取目标方法的参数
访问目标方法最简单的做法是定义增强处理方法时,将第一个参数定义为JoinPoint类型,当该增强处理方法被调用时,该JoinPoint参数就代表了织入增强处理的连接点。JoinPoint里包含了如下几个常用的方法:
林老师带你学编程
2019/05/25
6.2K0
对象池在 .NET (Core)中的应用[3]: 扩展篇
原则上所有的引用类型对象都可以通过对象池来提供,但是在具体的应用中需要权衡是否值得用。虽然对象池能够通过对象复用的方式避免GC,但是它存储的对象会耗用内存,如果对象复用的频率很小,使用对象池是不值的。如果某个小对象的使用周期很短,能够确保GC在第0代就能将其回收,这样的对象其实也不太适合放在对象池中,因为第0代GC的性能其实是很高的。除此之外,对象释放到对象池之后就有可能被其他线程提取出来,如果释放的时机不对,有可能造成多个线程同时操作同一个对象。总之,我们在使用之前得考虑当前场景是否适用对象池,在使用的时候严格按照“有借有还”、“不用才还”的原则。
蒋金楠
2021/08/30
1.6K0
对象池在 .NET (Core)中的应用[1]: 编程篇
借助于有效的自动化垃圾回收机制,.NET让开发人员不在关心对象的生命周期,但实际上很多性能问题都来源于GC。并不说.NET的GC有什么问题,而是对象生命周期的跟踪和管理本身是需要成本的,不论交给应用还是框架来做,都会对性能造成影响。在一些对性能比较敏感的应用中,我们可以通过对象复用的方式避免垃圾对象的产生,进而避免GC因对象回收导致的性能损失。对象池是对象复用的一种常用的方式。.NET提供了一个简单高效的对象池框架,并使用在ASP.NET自身框架中。这个对象池狂框架由“Microsoft.Extensions.ObjectPool”这个NuGet包提供,我们可以通过添加这个NuGet包它引入我们的应用中。接下来我们就通过一些简单的示例来演示一下对象池的基本编程模式。
蒋金楠
2021/08/31
1.3K0
对象池在 .NET (Core)中的应用[1]: 编程篇
.net异步性能测试(包括ASP.NET MVC WebAPI异步方法)
很久没有写博客了,今年做的产品公司这两天刚刚开了发布会,稍微清闲下来,想想我们做的产品还有没有性能优化空间,于是想到了.Net的异步可以优化性能,但到底能够提升多大的比例呢?恰好有一个朋友正在做各种语
用户1177503
2018/02/26
1.7K0
.NET ValueTuple使用WhenAll获取多个任务结果
在.NET中,我们可以通过Task.WhenAll用来等待多个任务。任务完成之后,我们可以使用await等待他们来获取结果。
HueiFeng
2020/05/27
8590
在ASP.NET中获取文件属性
www.chinacs.net  2001-8-13  中文C#技术站在ASP.NET中获取文件属C#
Java架构师必看
2021/03/22
2.9K0
request对象获取数据的方法_request对象的运用方法
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说request对象获取数据的方法_request对象的运用方法,希望能够帮助大家进步!!!
Java架构师必看
2022/08/01
1.8K0
浅谈PowerShell在渗透测试中的应用
Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能。
HACK学习
2019/08/07
2K0
在.NET中轻松获取系统信息(1) -WMI篇
在.NET中轻松获取系统信息(1) -WMI篇 Montaque 申明: 1、个人的一点心得,仅供参考 2、转载时候,请保留原本。 概述: 不知道大家有没有这种体会?有时候为了获取系统一点点信息,比如考虑一下操作系统的版本号,或者当前屏幕的分辨率。其实说到底就是读操作系统某个方面的一个属性值而已,然后就看到我们的程序中密密麻麻的Win32 API申明,调用,代码的可读性和维护性不言而喻。到了.NET,微软提供了更为丰富的类,有很多以前要调用API的方法可以在.NET中轻
阿新
2018/04/13
1.2K0
.Net中异步任务的取消和监控
OperationCanceledException 令牌被取消时抛出的异常,可以由监听者自主决定是否抛出异常
蓝夏
2021/09/09
8000
ASP.NET 2.0 中的异步页[来自MSDN]
ASP.NET 2.0 提供了大量新功能,其中包括声明性数据绑定和母版页,成员和角色管理服务等。但我认为最棒的功能是异步页,接下来让我告诉您其中的原因。 当 ASP.NET 接收针对页的请求时,它从线程池中提取一个线程并将请求分配给该线程。一个普通的(或同步的)页在该请求期间保留线程,从而防止该线程用于处理其他请求。如果一个同步请求成为 I/O 绑定(例如,如果它调用一个远程 Web 服务或查询一个远程数据库,并等待调用返回),那么分配给该请求的线程在调用返回之前处于挂起状态。这影响了可伸缩性,原因是线程池
菩提树下的杨过
2018/01/23
1.9K0
ASP.NET 2.0 中的异步页[来自MSDN]
在 .Net 设定 proxy 的方法
其实只要在 Machine.config (也就是 xxx.exe.config) 里面设定就可以了. 范例如下: <configuration>   <system.net>     <defaultProxy>     <proxy       proxyaddress = "http://proxyserver:80"       bypassonlocal = "true"     />     </defaultProxy>   </system.net> </configuration> 此
张善友
2018/01/19
5420
在ASP.NET MVC 中获取当前URL、controller、action
一、URL的获取很简单,ASP.NET通用: 【1】获取 完整url (协议名+域名+虚拟目录名+文件名+参数)  string url=Request.Url.ToString();  【2】获取 虚拟目录名+页面名+参数:  string url=Request.RawUrl; (或 string url=Request.Url.PathAndQuery;) 【3】获取 虚拟目录名+页面名: string url=HttpContext.Current.Request.Url.AbsoluteP
欢醉
2018/01/22
2.4K0
点击加载更多

相似问题

获取异步方法的结果

10

Powershell / .Net:获取方法返回的对象的引用

21

如何获取异步方法的结果?

11

PowerShell .NET对象丢失方法

13

从F#中的异步结果对象获取结果

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文