小编igu*_*man的帖子

如何取消Task.WhenAll?

Currenly使用以下代码等待完成任务的集合.但是,我现在有一种情况,我希望能够通过取消令牌取消/中止WhenAll调用.我该怎么办呢?

  Dim TaskCollection As New List(Of Tasks.Task)
  For x As Integer = 1 To Threads
    Dim NewTask As Tasks.Task = TaskHandler.Delegates(DelegateKey).Invoke(Me, Proxies, TotalParams).ContinueWith(Sub() ThreadFinished())
    TaskCollection.Add(NewTask)
  Next

  Await Tasks.Task.WhenAll(TaskCollection)
Run Code Online (Sandbox Code Playgroud)

我假设它会接下来的代码,但是我不确定'XXX'中会出现什么.

Await Tasks.Task.WhenAny(Tasks.Task.WhenAll(TaskCollection), XXX)
Run Code Online (Sandbox Code Playgroud)

.net vb.net task-parallel-library

18
推荐指数
1
解决办法
7034
查看次数

什么是HttpClient.Timeout和使用WebRequestHandler超时属性之间的区别?

我可以HttpClient直接设置我的对象的超时,HttpClient.Timeout但我最近读到了关于WebRequestHandler该类的衍生物HttpClientHandler.

WebRequestHandlerReadWriteTimeout房产.当与旁边一起使用时,这将如何影响请求的操作HttpClient.Timeout

.net c# vb.net timeout dotnet-httpclient

11
推荐指数
1
解决办法
3万
查看次数

如何为不接受取消令牌的异步功能设置超时?

我有这个代码处理的Web请求;

Response = await Client.SendAsync(Message, HttpCompletionOption.ResponseHeadersRead, CToken);
Run Code Online (Sandbox Code Playgroud)

在读取响应头之后和内容完成读取之前返回.当我打电话给这一行来获取内容时......

return await Response.Content.ReadAsStringAsync();
Run Code Online (Sandbox Code Playgroud)

我希望能在X秒后停止它.但它不接受取消令牌.

.net c# asynchronous httpclient task-parallel-library

7
推荐指数
1
解决办法
6591
查看次数

如何获得所有CSGO项目的清单,包括皮肤名称,质量和稀有度?

我不是要查找特定玩家库存的详细信息,而是查找CSGO所有项目的列表.我想要的是特别是武器的细节,但包括皮肤名称信息和稀有性.

为了更容易解释这个网站有我需要的信息,除了稀有.

http://csgo.steamanalyst.com/list.php

通过使用以下api url,我可以获得武器模型名称,但不能获得皮肤名称(即"Zirka") http://api.steampowered.com/IEconItems_730/GetSchema/v0002/?key= {YOUR_API_KEY}

steam-web-api

5
推荐指数
1
解决办法
2万
查看次数

任务中的异步套接字操作

我有一个Threading.Tasks.Task,它处理许多客户端套接字操作(连接,接收和发送).

我知道在可能的情况下最好使用Await使用非阻塞方法,否则我最终会得到"驻留线程等待他们的响应".但是,虽然Socket类具有异步方法(SendAsync等),但它们与通常的任务并行库异步方法不同,它们不会返回任务并且无法等待.

我意识到我可以使用TaskCompletionSource包装这些套接字异步方法,但是这样做有什么好处还是最终仍然会停止线程?

.net c# sockets asynchronous task-parallel-library

4
推荐指数
1
解决办法
3753
查看次数

我如何在类构造函数/计时器回调中等待任务

我有一个异步函数(不返回实际值,仅返回Task对象),我需要在类构造函数中以及Threading.Timers.Timer触发时运行。

我无法将构造函数子标记为异步,并且当我使用AddressOf设置计时器回调时,它警告我“将从该异步函数返回的任务将被删除,并且其中的任何异常都将被忽略。请考虑将其更改为异步子,以便将其更改为异步子”。传播异常。”。我听说使用异步subs / voids不是一个好主意,应尽可能避免使用。

构造代码

Public Sub New(File As String)
  Me.New()
  Await ImportXml(File)
End Sub
Run Code Online (Sandbox Code Playgroud)

计时器代码

Private WithEvents SaveTimer As New Threading.Timer(AddressOf Save, Nothing, 30 * 1000, Threading.Timeout.Infinite)
Run Code Online (Sandbox Code Playgroud)

我认为使用构造函数可以将文件的加载分为单独的子项(除非有更好的方法),但不确定如何处理计时器。我想知道我做错了什么吗,有什么办法可以安排任务,某种Task Timer?

.net c# asynchronous task-parallel-library async-await

2
推荐指数
1
解决办法
1996
查看次数