-
21 votesanswersviews
处理异步时TcpClient vs Socket
这不是另一个TcpClient vs Socket . TcpClient是Socket类的一个包装器,用于简化开发,同时也暴露了底层的Socket . 还是...... 在TcpClient类的MSDN库页面上,可以阅读以下注释: TcpClient类提供了在同步阻塞模式下通过网络连接,发送和接收流数据的简单方法 . 而对于Socket类: Socket类允许您使用ProtocolType... -
1 votesanswersviews
跟踪使用Sinon / Mocha调用方法的次数
我正在使用Mocha / Sinon编写测试,以确保我创建的 async tryAtMost 函数调用Promise并且只重试该承诺 X 次 . 我的 tryAtMost 函数看起来像: async tryAtMost(options, promise, maxRetries, retryInterval = 0) { return new Promise(async (resolve, ... -
0 votesanswersviews
ObjectContext实例已与Select和ToListAsync一起使用
我试图使用ToListAsync与一些Linq,它使用选择来创建一个新对象列表 . using (dbContext = new MyEntities()) { var listProjectToolFields = await (from pf in dbContext.ProjectToolFields join c in... -
-1 votesanswersviews
Await正在处理DbContext - 已经处理了ObjectContext实例
我在 async 方法中有以下内容: dbContext 实例传入其中: var userIds = await GetUserIds(db); 使用GetUserIds: private async Task<List<int>> GetUserIds(AppContext db) { var items = await db.Items.Whe... -
1 votesanswersviews
Async / await - .NET 4.6或.NET Core中的任何更改?
Hi All , 我计划开发一个非常类似于这篇精彩文章中提到的 custom awaiter : http://blogs.msdn.com/b/lucian/archive/2012/11/24/how-to-hibernate-async-methods-how-to-serialize-task.aspx 简而言之,它允许序列化异步方法的状态,以便反序列化并在以后恢复 . My conc... -
2 votesanswersviews
Roslyn Analyzer操作应该如何处理异步代码?
我有一个Roslyn分析器,我最近更新了使用CSharp.Workspaces的2.3版本 . 我发现当我构建时,我收到如下警告: Analyzer尝试注册“异步”操作,但不支持此操作 . 我添加的一些操作是异步的,因为它们从Roslyn API调用异步方法,如下面的假设示例所示 . public override void Initialize(AnalysisContext context... -
19 votesanswersviews
xUnit和Moq不支持异步 - 等待关键字
我试图发现如何将async和await关键字应用于我的xUnit测试 . 我使用的是xUnit 1.9和Async CTP 1.3 . 这是我的测试用例 我有一个接口,它指定一个异步方法调用 public interface IDoStuffAsync { Task AnAsyncMethod(string value); } 我有一个使用接口并调用异步方法的类 public class... -
30 votesanswersviews
如何实现返回Task <T>的接口方法?
我有一个界面 interface IFoo { Task<Bar> CreateBarAsync(); } 有两种方法可以创建 Bar ,一种是异步,另一种是同步 . 我想为这两种方法中的每一种提供接口实现 . 对于异步方法,实现可能如下所示: class Foo1 : IFoo { async Task<Bar> CreateBarAsync() { ... -
1 votesanswersviews
使用Task.Run同步调用异步方法最终导致死锁
我认为使用Task.Run调用异步方法不会导致任何死锁 . 但它确实: async Task<string> GetIdAsync() { return Task.Run( () => IncInt64Async( "id", 1L ) ).Result.ToString(); // Deadlock } async Task<Int64>... -
-2 votesanswersviews
如何实现真正的异步方法?
我想用真正的同步方法创建一个类库,所以我想避免实现一个只使用Task.Run运行同步代码的假异步方法 . 我已经看到一种方式是这样的: public Task miMethodAsync() { TaskCompletionSource<bool> miTcs = new TaskCompletionSource<bool>(); new Timer(_ =... -
75 votesanswersviews
导致死锁的异步/等待示例
我使用c#的 async / await 关键字(我是c#5.0的新手)遇到了一些异步编程的最佳实践 . 给出的建议之一是: Stability: Know your synchronization contexts ...某些同步上下文是不可重入和单线程的 . 这意味着在给定时间内只能在上下文中执行一个工作单元 . 一个例子是Windows UI线程或ASP.NET请求上下文 . 在这些单线... -
12 votesanswersviews
即使在Asp.Net流中使用ConfigureAwait(false)后死锁也是如此
即使在使用 ConfigureAwait(false) 之后我也遇到了死锁,下面是示例代码 . 根据示例http://blog.stephencleary.com/2012/02/async-and-await.html(#Avoding Context),这不应该是命中死锁 . This is my class : public class ProjectsRetriever { pub... -
2 votesanswersviews
ASP.NET页面中按钮的异步OnCommand
我尝试使LinkButton的onCommand函数异步 . <asp:LinkButton ID="..." runat="server" OnCommand="FooCommand" </asp> protected async void FooCommand(object source, CommandEvent... -
27 votesanswersviews
顶级请求上的ConfigureAwait(false)
我想弄清楚是否应该在顶级请求上使用ConfigureAwait(false) . 从这个主题的某个权威读这篇文章:http://blog.stephencleary.com/2012/07/dont-block-on-async-code.html ......他推荐这样的东西: public async Task<JsonResult> MyControllerAction(...)... -
3 votesanswersviews
最后一个方法行上的Task.ConfigureAwait(false)是否会影响任何内容?
我知道在正在等待的任务上调用ConfigureAwait(false)有时会产生性能优势,因为它可以防止不必要的返回原始SynchroniZationContext . 例如: async Task Something() { // Let's say I'm on the UI context //... await AnotherTask.ConfigureAwait(fal... -
63 votesanswersviews
与异步lambda并行的foreach
我想并行处理一个集合,但是我在实现它时遇到了麻烦,因此我希望得到一些帮助 . 如果我想在并行循环的lambda中调用C#中标记为async的方法,则会出现问题 . 例如: var bag = new ConcurrentBag<object>(); Parallel.ForEach(myCollection, async item => { // some pre stuff... -
1 votesanswersviews
使用C#5.0进行并行映像处理
我正在尝试使用相同的旧GDI技术使用C#进行一些图像处理,使用嵌套的for循环迭代每个像素,然后在该(Bitmap)图像上使用GetPixel和SetPixel方法 . 我已经用指针方法得到了相同的结果(使用不安全的上下文),但我现在正在尝试用老式的Get / Set-Pixel方法来玩我的位图... Bitmap ToGrayscale(Bitmap source) { ... -
0 votesanswersviews
Directory.GetDirectories在异步任务操作中返回空字符串
我有一个UWP应用程序,用于捕获和处理来自摄像头的图像 . 该项目利用Microsoft认知服务人脸识别API,我现在正在探索应用程序的现有功能 . 我的目标是当相机识别人物的图像时(通过脸部识别API服务),我想显示该人的相关图像 . 这样,图像被捕获并存储在我的机器的本地目录中 . 我想检索图像文件并在识别出人物后在屏幕上呈现它 . 下面的代码显示 async 任务方法 ProcessCame... -
1 votesanswersviews
'() => Promise<T>'不能分配给'Promise<T>'类型
我有一个界面: export interface ITreeViewItem { getChildren: Promise<ITreeViewItem[]>; ... 并实施它: export class MyClass implements ITreeViewItem { public async getChildren(): Promise<ITree... -
315 votesanswersviews
如果我的接口必须返回Task,那么实现无操作的最佳方法是什么?
在下面的代码中,由于接口,类 LazyBar 必须从它返回一个任务's method (and for arguments sake can't被更改) . 如果 LazyBar 的实现很不寻常,因为它恰好快速且同步地运行 - 从方法返回No-Operation任务的最佳方法是什么? 我已经使用了下面的 Task.Delay(0) ,但是我想知道如果这个函数被调用了很多,那么这是否有任何性能副作用... -
4 votesanswersviews
无法将'void'类型隐式转换为'System.Threading.Tasks.Task'
这是我的代码的简化版本,下面是生成以下编译错误 无法将类型'void'隐式转换为'System.Threading.Tasks.Task' 在这种情况下,GetDataAsync方法不需要返回任何内容 . 如何让它返回我可以等待的任务? static async void Run() { List<string> IDs = new List<string>()... -
9 votesanswersviews
Dart中的Future / async / await
我有一个函数 loadData 从文件中加载一些文本: Future<String> loadAsset() async { return await rootBundle.loadString('assets/data/entities.json'); } loadString 方法来自Flutter SDK,并且是异步的 . 然后在另一个方法中调用 loadAsset 方法,... -
189 votesanswersviews
Task.Start / Wait和Async / Await有什么区别?
我可能会遗漏一些东西但是做什么之间有什么不同: public void MyMethod() { Task t = Task.Factory.StartNew(DoSomethingThatTakesTime); t.Wait(); UpdateLabelToSayItsComplete(); } public async void MyMethod() { var result... -
139 votesanswersviews
Async / await vs BackgroundWorker
在过去的几天里,我测试了.net 4.5和c#5的新功能 . 我喜欢它的新async / await功能 . 之前我曾使用BackgroundWorker在后台处理响应式UI的更长进程 . 我的问题是:在拥有这些不错的新功能之后,我何时应该使用async / await和BackgroundWorker?两者的常见情况是什么? -
237 votesanswersviews
正确使用Task.Run时和async-await时
我想问你关于正确架构何时使用 Task.Run 的意见 . 我在WPF .NET 4.5应用程序(使用Caliburn Micro框架)中遇到了滞后的UI . 基本上我在做(非常简化的代码片段): public class PageViewModel : IHandle<SomeMessage> { ... public async void Handle(SomeMes... -
2 votesanswersviews
Async / Await - Typescript和ExpressJs
我在express中遇到过typescript的async / await . 我有以下代码片段,它不会产生任何结果,只是等待承诺永远不会完成 . 任何想法如何使其工作 . .. router.get('/test', this.test); .. private async test(req: Request, res: Response) { const result =... -
100 votesanswersviews
对Array.map使用async await
给出以下代码: var arr = [1,2,3,4,5]; var results: number[] = await arr.map(async (item): Promise<number> => { await callAsynchronousOperation(item); return item + 1; }); 这会产生以... -
1 votesanswersviews
如何使用RxJS将一系列Promise转换为Rx.Observable?
我正在尝试使用RxJS从一系列Promises中创建一个 Rx.Observable . 与this question的区别在于我的Promise数量未知,而且每个Promise都取决于前一个Promise的结果 . 基本上我有一系列页面,连接“下一页”链接 . 我想要的功能是: 等待承诺<> 提供结果(fire observer.onNext()) 检查是否有下一页链接... -
10 votesanswersviews
异步功能与返回新承诺
UPDATE 我已经阅读了十几篇关于这个主题的文章,其中没有一篇论述这个基本问题 . 我将在本文末尾开始列出资源部分 . ORIGINAL POST 我对 async 函数的理解是它返回一个承诺 . MDN文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function 在我... -
2 votesanswersviews
递归可观察调用中的Angular 4加载树结构
嗨我'm pretty new to Observables and I'm寻找一种用递归可观察调用加载我的导航树的方法 . 应基于目录和子目录中的所有 index.json 文件动态构建导航 . 只有第一个调用的url是静态的:/public/index.json 这是目录结构 . 每个目录可能包含 index.json ,提供有关其内容的信息,并可通过 loadChildrenFromUr...