问题标签 [iasyncresult]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
219 浏览

c# - dll中的异步回调导致表单冻结

我有一个带有按钮和文本框的表单 Form1。当我单击按钮时,我应该从 USB 设备获取一些数据。出于某种原因,它只有大约 2% 正常工作(我能够在 100 次点击中得到 2 个正确响应)。这是Form1的代码:

处理 USB 通信的代码位于 DLL Lib1 中(以下代码片段):

当它不起作用时,它会在 fileStreamDeviceData.BeginRead 周围停止,然后 Form1 冻结。

为了进行测试,我创建了一个全新的项目,而不是使用 DLL,而是将所有 DLL 代码复制到 Form1。此选项在 100% 的时间里都可以正常工作。所以我的问题是为什么它不适用于 DLL?

更新:当我很幸运并且它开始工作时,它会无限期地工作,直到我关闭应用程序。然后,我必须继续努力让它再次工作。如何解决此问题?

0 投票
1 回答
374 浏览

silverlight - CRM 2011 - 执行同步插件的 Silverlight 应用程序

嗨,我是 Silverlight/异步编程的新手

情况:Silverlight 应用程序作为进行 CRUD 操作的网络资源

问题:实体有一个插件步骤注册为同步。然后在 Silverlight 中,当代码执行 EndSaveChages(results) 方法时,我得到一个 SystemException。

收到的消息是:

当前对象并非源自异步结果。参数名称:asyncResult

我尝试使用锁、Thread.Sleep、While 和 Dispatcher,但没有任何帮助。有一种方法可以在我收到 asycResult 之前保留该过程?

代码:

0 投票
1 回答
227 浏览

c# - 实现 HttpWebRequest 异步方法

由于各种原因,我一直致力于更改现有的同步 IO 绑定代码,例如在我们使用的服务中非常频繁地使用 HttpWebRequest 类发送出站 HTTP 请求。

我知道 async/await 以及对 .NET 4.5 的更改,但我们目前使用的是 .NET 4.0。我也知道 Microsoft.Bsl.Async,并且由于其他原因,目前这不是一个选项。

我正在使用This Article on Async 中的示例代码,并使用 HttpWebRequest作为参考。

我的问题是,如果我不更新 UI,或者在 BeginXXXX 和 EndXXXX 之间做其他事情,但是出站 IO 调用的时间是 40+ 秒,是否值得实现这个异步,或者我应该坚持同步执行?

0 投票
1 回答
20448 浏览

c# - c# Webrequest Post 和 GetResponse

我正在编写一个将 XML 提交到网站的程序。编写的代码工作正常,有时它只是由于某种原因停止工作,抛出 System.Net.ProtocolViolationException。我可以关闭程序并重新运行——它又开始正常工作了。

这是我正在使用的代码:

response =request.GetResponse()是当它失败并给出错误时

如果设置 ContentLength>0 或 SendChunked==true,则必须提供请求正文。通过在 [Begin]GetResponse 之前调用 [Begin]GetRequestStream 来执行此操作。

任何帮助将不胜感激。

0 投票
1 回答
999 浏览

vb.net - 在 VB.NET 中获取私有属性 TcpClient.BeginConnect、IAsyncResult 的结果

我在 VB.NET 中有一个应用程序 当我在 Visual Studio 2010 中运行该应用程序并将鼠标悬停在一个IAsyncResult时,我看到了受保护的属性Result。我想读取应用程序中属性的值。我怎样才能做到这一点?

当我将鼠标悬停在 rslt 上时,VS 显示它是 System.Net.Sockets.Socket+MultipleAddressConnectAsyncResult我以前从未在类型中看到过加号 (+) 的类型,并且我无法声明该类型的变量。如果我展开属性,就会有一个受保护的属性Result,它的属性Message值为"No connection could be made because the target machine actively refused it 192.0.0.10:50035"。我需要访问该消息。我也想访问addresses,但这并不重要。

0 投票
3 回答
5510 浏览

c# - IAsyncResult 与 ThreadPool

我最近刚刚遇到 IAsyncResult 并且已经使用了很长一段时间。我真正想知道的是,当我们在那里有更好的替代 ThreadPool 时,为什么要使用 IAsyncResult ?根据我目前对它们的理解,我会选择在几乎所有情况下使用 ThreadPool。所以我的问题是,在任何情况下 IAsyncResult 比另一个更受欢迎吗?

为什么我不喜欢 IAsyncResult:

  • BeginXXX 和 EndXXX 增加了复杂性
  • 如果调用者不关心返回值,调用者可能会忘记调用 EndXXX
  • API 设计中增加的冗余(我们需要为我们想要异步运行的每个方法创建 Begin 和 End 包装器方法)
  • 降低可读性

把它放在代码中:

线程池

IAsyncResult

0 投票
1 回答
153 浏览

c# - 如何制作通用委托 EndInvoke?

所以我有以下内容:

并且列表一直在继续,然后在一个方法中,我不想在每个 EndInvoke 上尝试捕获,因为有时它确实会引发异常,但它不应该停止系统,并继续使用其他 Foos ..如果每个人都有一个 try catch ,就会在方法中占用太多空间。

有没有一种通用的方法来调用结束调用?所以我可以返回预期的结果?

0 投票
2 回答
1214 浏览

c# - 传递带有参数 Func 的方法并获得 TResult

所以基本上 T 有一个返回类型,我想取回通用返回类型。例子:

如何只传递调用该​​方法的 T 并获取 TResult?请注意,我只有T。

编辑:我的意思是如何调用此方法?

编辑:我想要一个通用的 EndInvoke,因为我对不同的 EndInvoke 有很大的尝试,然后我想要 EndInvoke 的结果。

0 投票
2 回答
1001 浏览

c# - 为什么Task实现了IAsyncResult,却不包含AsyncWaitHandle成员?

也许这是一个愚蠢的问题。

Task类是这样声明的:

IAsyncResult接口声明如下:

但是该成员AsyncWaitHandle不存在于Task类或实例中。

这段代码:

引发此编译错误:

错误 1“System.Threading.Tasks.Task”不包含“AsyncWaitHandle”的定义,并且找不到接受“System.Threading.Tasks.Task”类型的第一个参数的扩展方法“AsyncWaitHandle”(您是否缺少使用指令还是程序集引用?)

但是,这不仅编译:

但也有效,因为该成员存在。这是什么法术?

这是编译器技巧还是以其他方式隐藏?

干杯。

0 投票
0 回答
247 浏览

c++ - IAsync 操作^

我正在尝试创建一个 C++ 运行时组件以在 c# windows store app 项目中使用;

我创建了一个新项目 C++ -> Windows Store App -> Windows 运行时组件。新项目具有默认类 1。

这是我试图做的,我得到错误:

类1.h:

Class1.cpp:

错误

错误 2 错误 LNK2019:未解析的外部符号“公共:虚拟结构 Windows::Foundation::IAsyncOperation ^ cdecl TestRuntimeC_ toCS::Class1::[TestRuntimeC _toCS::_ IClass1PublicNonVirtuals]::LoadImage(struct Windows::Storage::Streams: :IRandomAccessStream ^)" (?LoadImage@?Q _IClass1PublicNonVirtuals@TestRuntimeC__toCS@@Class1@2@U$AAAP$AAU?$IAsyncOperation@P$AAVBitmapImage@Imaging@Media@Xaml@UI@Windows@@@Foundation@Windows@@ P$AAUIRandomAccessStream@Streams@Storage@6@@Z) 在函数“public: virtual long _ stdcall TestRuntimeC _toCS::Class1::[TestRuntimeC_ toCS:: _IClass1PublicNonVirtuals]::__abi_TestRuntimeC__toCS IClass1PublicNonVirtuals中引用_abi_LoadImage(struct Windows::Storage::Streams::IRandomAccessStream ^,struct Windows::Foundation::IAsyncOperation ^ *)" (?__abi_TestRuntimeC__toCS IClass1PublicNonVirtuals ___abi_LoadImage@?Q_ IClass1PublicNonVirtuals@TestRuntimeC _toCS@@Class1@2@U$AAGJP$AAUIRandomAccessStream @Streams@Storage@Windows@@PAP$AAU?$IAsyncOperation@P$AAVBitmapImage@Imaging@Media@Xaml@UI@Windows@@@Foundation@7@@Z) C:\Users\Stamatis\Documents\Visual Studio 2013 \Projects\TestRuntimeC++toCS\TestRuntimeC++toCS\Class1.obj TestRuntimeC++toCS