草庐IT

async_write

全部标签

c# - 使用 await-async 的最佳实践,从哪里开始任务?

我开始在我们的.NetWPF应用程序中使用await/async机制。在我的ViewModel中,我在服务上调用异步方法。我的问题是:是不是比较好直接在这个服务里面做一个大的returnawaitTask.Run(()=>{...});此服务上的所有子方法是否也是异步的,然后在其中有Task.Run?举例:1)publicclassService:IService{publicasyncTask(SomeParameterparameter){returnawaitTask.Run(()=>{CopyStuff(parameter.A);UpgradeStuff(parameter.B

c# - Resharper 可以跳过 async/await 关键字吗?

我正在尝试了解新的C#5.0异步(CTP)功能如何工作。我也使用ReSharper。但是因为它只是一个CTP,ReSharperdoesn'tsupport新关键字(async/await)并将它们突出显示为错误。这是它的样子(来自CTP样本的代码)是否可以让ReSharper暂时跳过这些词?更新我试过抢先体验计划ReSharperbuild6.0.2151.53(2011年5月10日),但没有成功。问题仍然存在,所以如果您希望它得到解决,请投票here(在彼得的回答之后)。 最佳答案 Async是一种新的语言语法,尚未成为RTM,

C# 比 Console.Write() 更快的东西?

我正在制作游戏,使用Console.Write()重绘游戏区域不是很好,有什么方法可以更快地重写整个游戏区域,而不会使它看起来“滞后”?游戏场中几乎所有的东西都在移动,但只有在元素不为0时才会有对象。(您可以在此处查看完整代码http://pastebin.com/TkPd37xD如果我的描述不够,请查看我在说什么)for(intY=0;Y 最佳答案 基本上有两种方法:渲染更少,渲染更快。渲染较少通常更棘手,但也往往不那么密集。典型的例子是Carmack的Keen游戏——PC没有勇气一次重新渲染整个屏幕,所以Carmack确保只有屏

c# - 如何使用 async/await OnNext/OnError/OnCompleted 方法实现 IObserver?

我正在尝试为System.Net.WebSocket编写一个扩展方法,使用ReactiveExtensions(Rx.NET)将它变成一个IObserver。你可以看到下面的代码:publicstaticIObserverToObserver(thisWebSocketwebSocket,IWebSocketMessageSerializerwebSocketMessageSerializer){//Wrapthewebsocketinaninterfacethat'salittleeasiertomanagevarwebSocketMessageStream=newWebSocket

c# - 调用 Stream.Write 和使用 StreamWriter 有什么区别?

实例化一个Stream对象,比如MemoryStream和调用memoryStream.Write()方法来写入有什么区别流,并使用流实例化一个StreamWriter对象并调用streamWriter.Write()?考虑以下场景:你有一个方法接受一个Stream,写入一个值,然后返回它。稍后会读取流,因此必须重置位置。有两种可能的方法(似乎都有效)。//InstantiateaMemoryStreamsomewhere//-PassedtothefollowingtwomethodsMemoryStreammemoryStream=newMemoryStream();//Notus

c# - 如何使用 async 和 await 正确处理

我正在尝试将代码从Thread替换为Task。sleep/延迟仅代表长时间运行的事件。staticvoidMain(string[]args){ThreadDoWork();TaskDoWork();}publicstaticvoidThreadDoWork(){using(vardispose=newThreadDispose()){dispose.RunAsync();}}publicstaticasyncvoidTaskDoWork(){using(vardispose=newTaskDispose()){awaitdispose.RunAsync();}}publicclass

c# - async await是否增加上下文切换

我知道异步等待的工作原理。我知道当执行到达等待时,它释放线程并在IO完成后,它从线程池中获取线程并运行剩余的代码。这样可以有效地利用线程。但我在某些用例中感到困惑:我们应该为非常快速的IO方法使用异步方法,比如缓存读/写方法吗?它们不会导致不必要的上下文切换吗?如果我们使用sync方法,执行将在同一个线程上完成,并且可能不会发生上下文切换。Async-await是否仅节省内存消耗(通过创建较少的线程)。或者它也可以节省cpu?据我所知,在同步IO的情况下,当IO发生时,线程进入休眠模式。这意味着它不消耗cpu。这种理解是否正确? 最佳答案

c# - "Async All the Way Down": Well, 底部到底是什么?

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭5年前。Improvethisquestion我正在尝试完全理解async-await,而我的理解中的差距之一是了解什么是“AlltheWayDown”。我创建了一个async方法,它被另一个async方法调用,等等,一直到我用模糊的术语理解的东西,比如“UI”或“一个可以处理多个请求的网络服务器”。我如何用技术术语描述什么是“一直向下”?让我们以网络服务器的第二个例子为例。假设我有一个像这样的Controller操作[HttpGet]pub

c# - HttpListener : writing to outputstream slow depending on content?

删除了旧问题并完全重写,因为我已经为此做了很多工作以查明问题所在。我的问题是我正在使用自定义服务器编写自定义CMS,目标是非常非常高的速度/吞吐量,但是我注意到某些数据或数据模式会导致严重的减速(从0到55+ms响应时间)。我真的需要比我更好的人来帮助解决这个问题,因为我对正在发生的事情一无所知,我怀疑.netFramework中有一个错误,但我不知道它可能在哪里,小的.net代码浏览我没有建议输出Stream做任何特定于数据的事情我已经测试并确定不是问题的东西:内容的大小(内容越大速度越快)内容类型(相同内容类型的区别)周围的大部分代码(制作了一个极简项目来重现该错误,大约15行,找

c# - MVC4 + async/await + 在 Action 完成前返回响应

在我的MVC4应用程序中,我需要添加一个Controller来上传和处理大文件。文件上传后,我需要立即开始对该文件的异步处理,并在不等待处理完成的情况下将响应返回给浏览器。显然我可以启动一个新线程来手动处理文件,但我想知道我是否可以使用.net4.5引入的异步/等待机制来实现这种情况为了测试这个概念,我尝试了这样的事情:publicasyncTaskTest(){TestAsync();returnView("Test");}publicasyncvoidTestAsync(){awaitLongRunning();}privateTaskLongRunning(){returnTas