草庐IT

task_completion_source

全部标签

c# - 将 Resources.resx 中的 BitmapImage 分配给 Image.Source?

我想将我的Resources.resx中的BitmapImage分配给Image。事先我将.png图像保存到Resources.resx。此图像现在位于“/Resources/logo.png”中。在阅读了几篇SO帖子和其他文章后,我现在有了这个:logoImage.Source=newBitmapImage(newUri(@"pack://application:,,,/Resources/logo.png"));不幸的是,它不起作用。我不知道如何解决这个问题。我尝试用完整路径替换Pack-URI并且它有效,但我想使用相对路径以便在绝对路径不正确的不同机器上使用相同的源.谁能帮我解决

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

linux shell 切换或得到shell脚本文件所在目录的完整路径(绝对路径) | $( dirname “$0“ ) 和 ${BASH_SOURCE[0]

文章目录切换或得到shell脚本文件所在目录的完整路径(绝对路径)$(dirname“$0“)不推荐使用dirname$()和${}${BASH_SOURCE[0]推荐使用切换或得到shell脚本文件所在目录的完整路径(绝对路径)$(dirname“$0“)不推荐使用demo:SCRIPT_PATH="$(cd"$(dirname"$0")">/dev/null2>&1&&pwd)"cd"$SCRIPT_PATH/.."||exit在linux中,dirname命令可以返回文件所在的目录。$0表示Shell本身的文件名。因此此写法的作用为:这个语句的作用是获取shell脚本所在目录的绝对路径,

c# - 模板生成器中 sitecore 'source' 字段的查询符号

我正在尝试使用查询符号(或xpath-无论哪个有效)设置模板的源字段,但它们似乎都不起作用。我的内容树是多站点内容树:France--Page1----Page1A-------Page1AA--Page2--Page3--METADATA----RegionsUS--Page1----Page1A-------Page1AA--Page2--Page3--METADATA----Regions每个站点都有自己的METADATA文件夹,我想要它以便在每个主要国家/地区节点内添加页面时,我希望这些值反射(reflect)该站点的METADATA中的内容。我现在有两个不同的字段-一个dro

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# - 什么时候用Task,什么时候用Thread?

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