草庐IT

异步通信

全部标签

c# - 调用模拟对象的异步方法时出现 NullReferenceException

我正在尝试使用MOQ对以下ViewModel的LoginExecute方法进行单元测试publicclassLoginViewModel:ViewModelBase,ILoginViewModel{INavigationServicenavigationService;IDialogServicedialogService;IAdminServiceadminService;publicRelayCommandLoginCommand{get;set;}privatestring_productID;publicstringProductID{get{return_productID;

c# - 异步和并行下载文件

编辑我更改了问题的标题以反射(reflect)我遇到的问题,但也提供了有关如何轻松实现此问题的答案。我正在尝试使第二种方法返回Task而不是Task与第一种方法一样,但由于尝试修复它,我遇到了一系列错误。我添加了return之前awaitbody(partition.Current);然后它要求我在下面添加一个返回语句,所以我添加了returnnull以下但是现在select语句提示它无法从查询中推断出类型参数我改Task.Run至Task.Run但没有成功。我该如何解决?第一个方法来自http://blogs.msdn.com/b/pfxteam/archive/2012/03/05

c# - 线程,两个线程之间的通信c#

我想知道在两个线程之间实现通信的最佳方式是什么。我有一个生成随机数的线程(类Sender),现在我想要另一个线程(类Receiver)来接收生成的随机数。这是发件人:publicclassSender{publicintGenerateNumber(){//somecodereturnrandomNumber;}}当然在Main函数中我将启动这些线程:staticvoidMain(string[]args){Sender_sender=newSender();Threadthread1=newThread(newThreadStart(_sender.GenerateNumber));

c# - MessageQueue 和异步/等待

我只想在异步方法中接收我的消息!它卡住了我的用户界面publicasyncvoidProcessMessages(){MessageQueueMyMessageQueue=newMessageQueue(@".\private$\MyTransactionalQueue");MyMessageQueue.Formatter=newXmlMessageFormatter(newType[]{typeof(string)});while(true){MessageQueueTransactionMessageQueueTransaction=newMessageQueueTransacti

c# - 如何从 C# 中的异步任务 <bool> 函数获取 bool 结果 - 错误 : Cannot implicitly convert type `void' to `bool'

我已经创建了任务函数来验证我的json文件。一切正常,直到我没有使用结果。当我试图从asynctaskfunction获得结果时它显示错误为Cannotimplicitlyconvert'void'tobool.我的异步函数如下:privateasyncTaskMyValidationFunction(stringjson){boolisValid=true;.......DOINGMYVALIDATIONSTUFF.....returnisValid;}从另一个函数调用这个函数如下:publicboolGetJsonAndValidate(){boolisValid=true;str

在Angular 2中,两个组件如何通信?

我写了两个组成部分,如下:dynselectioncomponent.ts(通用选择标签,因为选择标签不支持多选的滤波器,因此此组件使用ng2-selet).user-list.component.ts(此组件使用DynelectionComponent对应于HTML模板,并为DynselectionComponent提供了一个选项的集合)。dynselectioncomponent.tsimport{Component,OnInit,ViewEncapsulation,Input,SimpleChanges}from'@angular/core';@Component({selector:'

c# - 异步世界中的故障安全处置

在同步世界中,C#使一次性管理所有事物变得非常容易:using(IDisposablesomeDisposable=bla.bla()){//doourbidding}//don'tworrytoomuchaboutit但是,当我们使用异步时,我们不再享受usingblock带来的便利。我遇到的最好的策略之一是CCRiterator这允许我们使用异步代码“就好像它是同步的”。这意味着我们可以将usingblock保留在迭代器处理程序中,而不会陷入何时处理和捕获所有需要处理的情况的复杂决定中。但是,在许多情况下,调用CCR似乎有点矫枉过正,老实说,虽然我对CCR很满意,但对于外行来说,它

c# - 在异步方法中显示错误消息的更好方法

事实上我们不能使用awaitcatch中的关键字block使得在WinRT中显示来自异步方法的错误消息非常尴尬,因为MessageDialogAPI是异步的。理想情况下,我希望能够这样写:privateasyncTaskDoSomethingAsync(){try{//Somecodethatcanthrowanexception...}catch(Exceptionex){vardialog=newMessageDialog("Somethingwentwrong!");awaitdialog.ShowAsync();}}但是我必须这样写:privateasyncTaskDoSome

c# - 在 ASP.NET 中异步填充数据集或数据表的最佳做法是什么?

鉴于以下代码,我有几个关于最佳实践的问题:stringconnectionString=@"Server=(local)\sqlexpress;Database=master;IntegratedSecurity=true;";using(SqlConnectionconnection=newSqlConnection(connectionString)){using(SqlDataAdapterdataAdapter=newSqlDataAdapter("select*frominformation_schema.columns",connection)){awaitconnecti

c# - 如何将 IEumerable 集合添加到队列并在 .NET 中异步处理每个项目?

我已经创建了一个方法来使用交换服务器读取收件箱新消息,如下所示。如何将这些IEnumerable集合添加到队列并异步处理队列中的每个项目列表?privatestaticIEnumerableGetInboxItems(ExchangeServiceservice){varemailInformations=newList();try{SearchFiltersearchFilter=newSearchFilter.SearchFilterCollection(LogicalOperator.And,newSearchFilter.IsEqualTo(EmailMessageSchema