草庐IT

异步通信

全部标签

c# - 基于key的异步锁

我正在尝试找出我的ImageProcessor库中出现的问题here将项目添加到缓存时出现间歇性文件访问错误。System.IO.IOException:Theprocesscannotaccessthefile'D:\home\site\wwwroot\app_data\cache\0\6\5\f\2\7\065f27fc2c8e843443d210a1e84d1ea28bbab6c4.webp'becauseitisbeingusedbyanotherprocess.我编写了一个类,旨在根据哈希url生成的key执行异步锁定,但似乎我在实现中遗漏了一些东西。我的加锁类publics

c# - 等待和异步属性中的方法错误 'Cannot await ' System.Threading.Tasks.Task'

我已经为.NETFramework4、Silverlight4和5以及WindowsPhone7.5和8安装了NuGetPackageAsync。Version1.0.16我使用的是Microsoft.NET4.0,但由于虚拟主机包限制,我无法升级。(可悲!)我的测试代码:(我正在执行LinqtoSQL查询代替Thread.Sleep)publicclassSearch{publicasyncTask>GetResults(stringSearchString){awaitSystem.Threading.Tasks.Task.Factory.StartNew(()=>Thread.S

c# - 通过 SendMessage 或其他方式异步 GetForegroundWindow?

有没有一种方法可以在焦点从任何窗口更改到另一个窗口(甚至在Windows应用程序之间)时得到通知,这样我就可以在用户更改焦点时立即调用我的委托(delegate)?我一直在想我可能只需要做轮询:(:(每1秒并调用GetForegroundWindow但我真的不想这样做。 最佳答案 SetWinEventHook()可能是你最好的选择;您可以监听EVENT_SYSTEM_FOREGROUND以监听前景窗口的变化-或者甚至监听EVENT_OBJECT_FOCUS以监听应用程序和控件内更精细的焦点变化。您需要将其与WINEVENT_OUT

STM32之CAN通信

23.1关于CAN23.1.1CAN电气特性与协议控制器局域网(ControllerAreaNetwork,CAN),是由德国BOSCH(博世)公司开发,是目前国际上应用最为广泛的现场总线之一。其特点是可拓展性好,可承受大量数据的高速通信,高度稳定可靠,因此常应用于汽车电子领域、工业自动化、医疗设备等高要求环境。CAN总线有两个ISO国际标准:ISO11519和ISO11898。ISO11519定义了通信速率为10~125Kbps的低速CAN通信标准,属于开环总线,传输速率为40Kbps时,总线长度可达1000米;ISO11898定义了通信速率为125Kbps~1Mbps的高速CAN通信标准,

c# - SQL Server 连接字符串异步处理=true

我正在使用.Net2.0+SQLServer2005Enterprise+VSTS2008+C#+ADO.Net来开发ASP.NetWeb应用程序。我的问题是,如果我在SQLServer身份验证模式(不是Windows身份验证模式,即在web.config的连接字符串中使用sa帐户和密码)中使用AsynchronousProcessing=true,我是想知道AsynchronousProcessing=true是否会影响我的Web应用程序的性能(或取决于我的ADO.Net代码实现模式/场景)?为什么? 最佳答案 从.NETFram

c# - 如何根据最佳实践在 C# 4 中创建异步方法?

考虑以下代码片段:publicstaticTaskFetchAsync(){stringurl="http://www.example.com",message="HelloWorld!";varrequest=(HttpWebRequest)WebRequest.Create(url);request.Method=WebRequestMethods.Http.Post;returnTask.Factory.FromAsync(request.BeginGetRequestStream,request.EndGetRequestStream,null).ContinueWith(t=

c# - 将覆盖的成员更改为异步

我正在覆盖基类库中的一个方法。但是,在我重写的实现中,我使用的是新的HttpClient,它全部基于异步方法。因此,我必须将我的方法标记为异步,这意味着我需要将方法的返回参数从字符串更改为任务。然而,编译器给出了一个错误:“返回类型必须是‘字符串’才能匹配覆盖的成员……”publicclassBaseClass{publicvirtualstringGetName(){...}}publicclassMyClass:BaseClass{publicoverrideasyncTaskGetName(){HttpClienthttpClient=newHttpClient();varres

c# - 从异步方法返回输出时推荐的方法签名?

我有一个异步方法:publicasyncTaskGetBitmapAsync(double[]pixels);假设我也有这门课:publicclassPixelData{publicdouble[]Pixels{get;}}我现在想创建一个生成BitmapSource的便捷方法输出,使用上面的异步方法来完成工作。我至少可以想出三种方法来做到这一点,但从效率和可靠性的角度来看,我并不清楚应该选择哪一种。有人可以指教吗?以下每种方法的优点和缺点是什么?选项A创建一个返回Result的同步方法的Task:publicBitmapSourceGetBitmap(PixelDatapixelDa

c# - 在库的异步方法中总是使用 'async' 和 'await' 关键字?

总结:在库方法中,什么时候应该使用async和await关键字而不是返回Task直接?我相信我的问题与thisone有关.但是,这个问题是关于.NET4.0的。和TPL,同时我将.NET4.6与async一起使用和await关键字。因此,我认为我的问题可能会得到不同的答案,因为在回答链接问题时这些关键字不存在。说明:我正在为外部WCF服务编写一个简单的包装器,该包装器生成多个SendAsync电话。现在我认为每个包装器方法应该只返回一个Task。直接不用等待。我的理解是async/await应该在应用层使用,不在库中使用。因此,例如,这是我认为我应该为每个包装器方法采用的方法:priv

c# - 异步任务与异步无效

这可能是一个非常愚蠢的问题,但我有以下代码行可以将RAW图像转换为BitmapImages:publicasyncvoidCreateImageThumbnails(stringimagePath,intimgId){awaitTask.Run(()=>controlCollection.Where(x=>x.ImageId==imgId).FirstOrDefault().ImageSource=ThumbnailCreator.CreateThumbnail(imagePath));}调用此方法CreateThumbnail()publicstaticBitmapImageCrea