草庐IT

google-tasks

全部标签

c# - Task.Delay 永远不会完成

以下代码将永远卡住。publicasyncTaskDoSomethingAsync(){awaitTask.Delay(2000);}privatevoidButton_Click(objectsender,RoutedEventArgse){DoSomethingAsync().Wait();//Task.Delay(2000).Wait();}如果我将调用切换到带有注释掉的代码的DoSomethingAsync,它会按预期运行。我怀疑嵌套等待以某种方式导致了死锁,但我不确定原因或如何修复它。 最佳答案 假设Button_Clic

c# - 如何并行启动 List<Task>?

我有一个返回System.Threading.Tasks.Task的对象:publicclassMyClass{publicTaskGetTask(objectstate,CancellationTokencancellationToken){returnnewTask(Execute,state,cancellationToken);}publicvoidExecute(objectcontext){//dostuff}}在其他地方我有一个List,所以我执行以下操作以获得List:varmyTaskList=myClassList.Select(p=>p.GetTask(null,

c# - TaskCompletionSource 抛出 "An attempt was made to transition a task to a final state when it had already completed"

我想使用TaskCompletionSource来包装MyService这是一个简单的服务:publicstaticTaskProcessAsync(MyServiceservice,intparameter){vartcs=newTaskCompletionSource();//EverytimeProccessAsynciscalledthisassignstoCompleted!service.Completed+=(sender,e)=>{tcs.SetResult(e.Result);};service.RunAsync(parameter);returntcs.Task;}

c# - Task.Yield() 与 Task.Delay(0)

Delay(0)是否总是内联?根据我的经验,它确实:usingSystem;usingSystem.Threading;usingSystem.Threading.Tasks;namespaceConsoleApplication{classProgram{staticasyncTaskTest(){awaitTask.Yield();Console.WriteLine("afterYield(),thread:{0}",Thread.CurrentThread.ManagedThreadId);awaitTask.Delay(0);Console.WriteLine("afterDe

c# - Task.WaitAll 不等待任务完成

在尝试弄清楚C#中的新(现在可能不是那么新,但对我来说还是新的)Task异步编程时,我遇到了一个问题,我花了一些时间才弄明白,我不确定为什么。我已经解决了这个问题,但我仍然不确定为什么它是一个问题。我只是想我会分享我的经验,以防有人遇到同样的情况。如果有任何专家愿意告诉我问题的原因,那将是非常好的,我们将不胜感激。我总是喜欢知道为什么某些东西不起作用!我做了一个测试任务,如下:Randomrng=newRandom((int)DateTime.UtcNow.Ticks);intdelay=rng.Next(1500,15000);Task>testTask=Task.Factory.S

C# 测试事件的互联网连接。 ping google.com

C#2008我正在使用此代码来测试互联网连接。因为我的应用程序必须登录到Web服务器。但是,如果用户互联网连接失败或电缆被拔掉。我必须通知用户。//Pingwww.google.comtocheckiftheuserhasainternetconnection.publicboolPingTest(){Pingping=newPing();PingReplypingStatus=ping.Send(IPAddress.Parse("208.69.34.231"));if(pingStatus.Status==IPStatus.Success){returntrue;}else{retu

C# 异步/等待 : Leave AsyncLocal<T> context upon task creation

AsyncLocal允许我们将上下文数据保存在异步控制流中。这非常巧妙,因为所有后续简历(甚至在另一个线程上)都可以检索和修改环境数据(AsyncLocalonMSDN)。有没有办法为子任务“留下”当前的异步本地上下文,从而创建一个新的本地上下文?AsyncLocalData=newAsyncLocal();Data.Value="One";Task.Factory.StartNew(()=>{stringInnerValue=Data.Value;//InnerValueequalsto"One",Ineedittobenull.});在上面的示例中,内部任务与外部控制流共享Asyn

c# - 对特定 Google Apps 域的 MVC4/Google OpenID 限制

我创建了一个新的MVC4/.NET4.5项目并启用了GoogleOpenID。这奏效了,非常容易。我的公司已“转到google”,我们的域/员工身份位于GoogleApps网络空间中。我如何才能只允许我们的GoogleApps域对我的新网站进行身份验证?我希望它像身份验证一样简单。这里是一些额外的信息:我确实创建了一个默认网络应用程序并启用了Google身份验证部分。我无法相信针对Google进行验证是多么简单。我的公司实际上有数百个电子邮件域,所有这些域都集中在一个电子邮件域“umbrella”下。比如我公司的企业邮箱域名是“foo.com”,但是在这个域名下有“x.foo.com”

c# - 什么时候用Task,什么时候用Thread?

我刚刚问了有关Task的问题,但意识到我实际上想问更一般的问题。有人可以总结一下任务和线程的优缺点。如何理解我应该使用任务还是线程? 最佳答案 Task是以异步方式执行某事的命令。Thread实际上是OS内核对象,它执行所请求的内容。将Task想象成一个聪明的线程聚合器/组织器,它“知道”在您的CPU上同时运行多少任务更好。它只是比多线程的常见实现更聪明(这就是为什么建议选择Microsoft的原因)。此功能可帮助您以更轻松的方式管理Threads。也看看这个ShouldiuseThreadPoolsorTaskParallelLi

c# - 用于服务应用程序的 Google oAuth 2.0(JWT token 请求)

我正在尝试为此处描述的服务帐户实现GoogleoAuth2:https://developers.google.com/accounts/docs/OAuth2ServiceAccount在UnityScript(或C#-这并不重要,因为它们都使用相同的Mono.NET类)上。我在这里找到了类似的主题:IsthereaJSONWebToken(JWT)exampleinC#?web-token-jwt-example-in-c但我仍然没有成功。首先,我已经生成了header和声明集(就像在谷歌文档中一样)varheader:String=GetJWTHeader();varclaims