草庐IT

async_service

全部标签

c# - 在 ASP.NET 事件处理程序中使用 async/await 是否安全?

当我遇到这个时,我正在用ASP.NET编写一些代码:protectedasyncvoidsomeButtonClickHandler(...){if(awaitblah)doSomething();elsedoSomethingElse();}询问后this问题我对async/await的工作原理有了更好的理解。但后来我突然想到,以上述方式使用async/await是否安全?我的意思是在调用awaitblah之后,调用者继续执行。这意味着它可能会在awaitblah完成之前将响应返回给客户端。这是正确的吗?如果是这种情况,doSomething()/doSomethingElse()会

c# - WCF Web 服务错误 : "Service endpoint binding not using HTTP protocol"?

我有一个简单的WCF服务,在我的开发机器上测试时它运行良好。现在我已将Web服务移至Web服务器,并在http://mydomain.com:8005运行该服务(在Debug模式下).打开Web浏览器访问该URL会显示预期的服务页面,如果我在我正在调用的界面内的服务器上放置一个断点,它会命中断点并返回预期的数据......但在客户端它会返回出现以下错误:AnerroroccurredwhilereceivingtheHTTPresponsetohttp://mydomain.com:8005/.Thiscouldbeduetotheserviceendpointbindingnotus

C# 5 async/await 线程机制感觉不对?

为什么调用线程要进入异步方法直到内部'await'?调用异步方法后立即生成一个线程不是更干净吗?这样您就可以确定异步方法会立即返回。您不必担心在异步方法的早期阶段没有做任何昂贵的事情。我倾向于知道一个方法是否会在“我的”线程上执行代码。不管堵不堵。该模型似乎开启了一系列介于两者之间的可能性。设计师比我聪明得多,所以我确信这是有充分理由的,我只是想好好想想。 最佳答案 Isn'titcleanertojustspawnathreadassoonasanasyncmethodiscalled.“异步”方法的全部意义在于避免生成新线程。您

c# - 使用 async/await 时如何更好地处理已处置的控件

考虑在UI线程上运行的这段代码:dividends=awaitDatabase.GetDividends();if(IsDisposed)return;//DoexpensiveUIworkhereearnings=awaitDatabase.GetEarnings();if(IsDisposed)return;//DoexpensiveUIworkhere//etc...注意每次我await我也查了IsDisposed.这是必要的,因为说我await长期运行Task.同时,用户在完成之前关闭表单。Task将完成并运行尝试访问已处理表单上的控件的延续。发生异常。有没有更好的方法来处理这

c#授予Windows用户 "Log On As Service"权限

如何授予用户对服务的LogOnAsService权限?我需要手动执行此操作,在services.msc应用程序中,我可以转到该服务,更改密码(设置与之前相同的密码),单击应用,我会收到一条消息:Theaccount.\postgreshasbeengrantedtheLogOnAsServiceright.我如何从代码中执行此操作,否则我每次运行应用程序时都必须手动授予此权限,这是不可能的@史蒂夫staticvoidMain(){//irrelevantstuffGrantLogonAsServiceRight("postgres");//irrelevantstuff}private

c# - 如何避免使用 async void 事件处理程序重入?

在WPF应用程序中,我有一个通过网络接收消息的类。每当所述类的对象收到一条完整的消息时,就会引发一个事件。在应用程序的主窗口中,我有一个事件处理程序订阅了该事件。保证在应用程序的GUI线程上调用事件处理程序。无论何时调用事件处理程序,都需要将消息的内容应用于模型。这样做可能会非常昂贵(在当前硬件上>200ms)。这就是使用Task.Run将应用消息卸载到线程池的原因。现在,可以非常连续地接收消息,因此可以在仍在处理之前的更改时调用事件处理程序。确保一次只应用一条消息的最简单方法是什么?到目前为止,我已经得出以下结论:usingSystem;usingSystem.Threading.T

c# - 使用 async/await 限制信号量线程

我最近遇到了一个针对异步/等待调用限制线程的示例。在我的机器上分析和运行代码后,我想出了一种稍微不同的方法来做同样的事情。我不确定的是引擎盖下发生的事情是否几乎相同,或者是否有任何值得注意的细微差别?这是基于原始示例的代码:privatereadonlySemaphoreSlim_semaphore=newSemaphoreSlim(5);publicasyncTaskCallThrottledTasks(){vartasks=newList();for(intcount=1;count{try{intresult=awaitLongRunningTask();Debug.Print(

c# - 使用 .NET 4.5 async 将 Azure blob 异步下载到字符串,等待

我正在尝试使用.NET4.5async&await实现完全异步blob下载。假设整个blob可以一次放入内存中,并且我们希望将其保存在string中。代码:publicasyncTaskDownloadTextAsync(ICloudBlobblob){using(StreammemoryStream=newMemoryStream()){IAsyncResultasyncResult=blob.BeginDownloadToStream(memoryStream,null,null);awaitTask.Factory.FromAsync(asyncResult,(r)=>{blob

c# - 使用 Reporting Services 将组保持在一页上

我使用ReportingServices创建了一个报表作为C#应用程序的一部分,但我找不到我在其他环境中经常看到的一些功能。我相信MSAccess和Crystal报表都有一个名为“KeepTogether”的选项,这样您就可以在一页上保留一组特定的数据,而不是将信息分成两页。当我的报告在C#应用程序中本地呈现并使用.net报告查看器查看时,我如何使用2005ReportingServices来做到这一点。本质上,我想将某一年的所有记录保存在一页上。我正在使用VisualStudio2008。年份是列之一,一年的行数总是小于一页。我的报告只使用一个表格,最里面按年份分组,然后按客户名称分

c# - 如何将非表数据导入 SQL Server Reporting Services?

给定:一个C#计算引擎,它加载一个对象模型,处理大量数字,并将结果保存到SQLServer中的几个巨大的索引数据库表中。这些表向Web界面、其他软件模块和SQLServerReportingServices2005报告提供数据。在最新版本的软件中,我设法使引擎的速度快了很多,现在已经足够快了,它可以根据请求提供数据-有时甚至比查询所需的时间还快预先计算的数字的数据库。我对此感到非常高兴。这一突破意味着我们可以根据Web界面和其他软件模块的请求生成数据。但是缓存表还不能消亡,因为它们被SSRS报告使用(或者更具体地说,被查询表并向SSRS提供数据的存储过程使用。)缓存表是一种痛苦,就像任