小编Twe*_*nty的帖子

将 IAsyncEnumerable 转换为列表

所以在 C#8 中我们添加了IAsyncEnumerable接口。

如果我们有一个法线,IEnumerable我们可以用它制作一个List或几乎任何其他我们想要的集合。感谢那里的 Linq。

var range = Enumerable.Range(0, 100);
var list = range.ToList();
Run Code Online (Sandbox Code Playgroud)

那么现在我想将 my 转换IAsyncEnumerable为 aList并且这当然是异步的。是否已经有针对这种情况的 Linq 实现?如果没有,我怎么能自己转换呢?

c# linq ienumerable c#-8.0 iasyncenumerable

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

“scoped”关键字的目的是什么

在查看 new 的源代码时,DefaultInterpolatedStringHandler我注意到 是ReadOnlySpanscoped关键字注释的。我能找到的唯一文档是here。但是,我无法弄清楚以下代码片段之间的实际区别是什么。我假设使用scoped关键字,参数不允许传递给被调用的方法,也不允许返回。即使事实证明这是真的,它有什么实际用途呢?

public void AppendFormatted(ReadOnlySpan<char> value) 
{
  // Omitted for brevity
}

// vs

public void AppendFormatted(scoped ReadOnlySpan<char> value) 
{
  // Omitted for brevity
}
Run Code Online (Sandbox Code Playgroud)

c# keyword c#-11.0

19
推荐指数
1
解决办法
5647
查看次数

完成加载后从网站上获取HTML代码

我试图通过以下代码从特定网站异步获取HTML代码:

var response = await httpClient.GetStringAsync("url");
Run Code Online (Sandbox Code Playgroud)

但问题是网站通常需要一秒钟来加载其他部分.我需要的是,所以问题是我是否可以先加载网站并在一定时间后阅读内容.

对不起,如果这个问题已经得到解答,但我真的不知道该搜索什么.

谢谢,二十


编辑#1

如果您想自己尝试URL http://iloveradio.de/iloveradio/,我需要不立即加载的标题和艺术家.

c# web-scraping dotnet-httpclient

17
推荐指数
1
解决办法
1314
查看次数

在 Blazor 中创建图表

所以基本上我想用服务器端 blazor 创建图表,我一直在寻找一些可以让我创建图表的包。问题是它们都非常昂贵:

  1. 电传
  2. 同步融合

我发现的唯一免费替代方案也是不错的选择是 ofc。ChartJs,但它使用了明显的 js,这并不是我真正想要的方向。

那么是否有任何“好”的 Blazor 图表库是免费的,让我可以创建充满图表类型的普通手,例如面积图、折线图、条形图......?

c# charts blazor-server-side

16
推荐指数
3
解决办法
2万
查看次数

从异步方法返回 IAsyncEnumerable

采取以下方法:

public async IAsyncEnumerable<int> Foo()
{
   await SomeAsyncMethod();
   return Bar(); // Throws since you can not return values from iterators
}

public async IAsyncEnumerable<int> Bar()
{
   for(int i = 0; i < 10; i++)
   {
       await Task.Delay(100);
       yield return i;
   }
}
Run Code Online (Sandbox Code Playgroud)

我想知道最好的做法是什么,上面的代码试图做什么。IAsyncEnumerable基本上从方法返回一个async

对于我自己来说,我可以想象两种方式:

  1. 迭代IAsyncEnumerable并立即返回结果。
await foreach(var item in Bar())
{
    yield return item;
}
Run Code Online (Sandbox Code Playgroud)
  1. 创建一个可以临时存储的结构IAsyncEnumerable,这似乎是更好的解决方案,但仍然有点矫枉过正。
return new AsyncEnumerableHolder<int>(Bar());

public struct AsyncEnumerableHolder<T>
{
    public readonly IAsyncEnumerable<T> Enumerable;

    public AsyncEnumerableHolder(IAsyncEnumerable<T> enumerable)
    {
        Enumerable …
Run Code Online (Sandbox Code Playgroud)

c# async-await c#-8.0 iasyncenumerable

10
推荐指数
1
解决办法
8848
查看次数

Python Google 图片下载不起作用

我正在通过 Google 图片下载器抓取图片。原本可以运行的代码突然停止运行了,这个问题怎么解决?代码和错误信息如下

from google_images_download import google_images_download   

def ImageCrawling(keyword, dir):
    response = google_images_download.googleimagesdownload()  

    arguments = {"keywords":keyword 
        ,"limit":2 
        ,"print_urls":True 
        ,'output_directory':dir}   
    paths = response.download(arguments)   #passing the arguments to the function
    print(paths)   #printing absolute paths of the downloaded images

ImageCrawling('dog','C:\\nuguya')
Run Code Online (Sandbox Code Playgroud)

python web-crawler

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

如何在ajax请求中控制缓存控制

可能是一个愚蠢的问题,但我搜索了很多没有结果.我知道如何在服务器响应中设置缓存控制,但是如何在ajax请求中更改缓存控制的值?注意:我希望浏览器使用它的缓存.不希望它从服务器获取更新的json ..这是我想要做的全部事情.

在此输入图像描述

html css ajax jquery

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

尝试在.Net Core控制台应用程序中使用System.Drawing时出错

我正在尝试在Ubuntu 18.04上运行的.Net Core Console应用程序中使用System.Drawing.Common创建位图,但是一旦执行代码,它将向我显示:

“ Gdip”的类型初始值设定项引发了异常。
   在System.Drawing.SafeNativeMethods.Gdip.GdipCreateBitmapFromScan0(Int32宽度,Int32高度,Int32跨度,Int32格式,HandleRef scan0,IntPtr和位图)
   在System.Drawing.Bitmap..ctor处(Int32宽度,Int32高度,PixelFormat格式)
   在/home/MidnightBot/Modules/AdminCommands.cs:line 125中的MidnightBot.Modules.AdminCommands.CreatePollAsync(String Term1,String Term2,String Description)中
System.DllNotFoundException:无法加载DLL'libgdiplus':找不到指定的模块。
   在System.Runtime.InteropServices.FunctionWrapper`1.get_Delegate()处
   在System.Drawing.SafeNativeMethods.Gdip.GdiplusStartup(IntPtr&令牌,StartupInput&输入,StartupOutput&输出)
   在System.Drawing.SafeNativeMethods.Gdip..cctor()

我也试图做这里描述的事情。但是没有成功。

谢谢你的帮助。

c# dllnotfoundexception .net-core ubuntu-18.04

6
推荐指数
1
解决办法
869
查看次数

BackgroundService 是否总是在新线程中运行

因此,在ASP.Net Core的MSDN 中,它向您展示了如何使用托管服务创建后台任务。甚至还有一个特定的段落解释了如何创建后台队列。

现在我的问题是,该ExecuteAsync方法是否已经在自己的线程中运行,还是需要先调用Task.Run

c# multithreading asp.net-core-3.0

6
推荐指数
2
解决办法
2446
查看次数

为什么动态转换比对象转换快

我真的很困惑,拿下面的代码:

[Benchmark]
public TEnum DynamicCast()
{
    return (TEnum)(dynamic)0;
}

[Benchmark]
public TEnum ObjectCast()
{
    return (TEnum)(object)0;
}

[Benchmark]
public TEnum DirectCast()
{
    return (TEnum)0;
}

public enum TEnum
{
    Foo,
    Bar
}
Run Code Online (Sandbox Code Playgroud)

是的,我知道我可以直接将整数转换为给定的 Enum,但这是我实际代码的简化版本,其中包括通用扩展的工作。

无论如何,我进行了一些性能测试,因为我很好奇哪个更快。我正在使用BenchmarkDotNet并在那里看到:

BenchmarkDotNet=v0.12.0, OS=Windows 10.0.18362
Intel Core i7-6700HQ CPU 2.60GHz (Skylake), 1 CPU, 8 logical and 4 physical cores
.NET Core SDK=3.1.100
  [Host]     : .NET Core 3.1.0 (CoreCLR 4.700.19.56402, CoreFX 4.700.19.56404), X64 RyuJIT
  DefaultJob : .NET Core 3.1.0 (CoreCLR 4.700.19.56402, CoreFX 4.700.19.56404), X64 RyuJIT


| …
Run Code Online (Sandbox Code Playgroud)

c# performance dynamic object performance-testing

6
推荐指数
1
解决办法
928
查看次数