小编Sal*_*7ty的帖子

如果 useAsync 为 true,则 FileStream.ReadAsync 会阻止 UI,但如果它为 false,则不会阻止 UI

我读到了useAsync这个FileStream构造函数中的参数:

FileStream(String, FileMode, FileAccess, FileShare, Int32, Boolean)

我尝试FileStream.ReadAsync()在 Winforms 应用程序中使用该方法,如下所示:

byte[] data;
FileStream fs;
public Form1()
{
    InitializeComponent();
    fs = new FileStream(@"C:\Users\iP\Documents\Visual Studio 2015\Projects\ConsoleApplication32\ConsoleApplication32\bin\Debug\hello.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite, 4096);
     data = new byte[(int)fs.Length];
}

private async void button1_Click(object sender, EventArgs e)
{
    await change();
}

async Task change()
{
    textBox1.Text = "byte array made";
    await fs.ReadAsync(data, 0, data.Length);
    textBox1.Text = "finished";
}
Run Code Online (Sandbox Code Playgroud)

通过上述,textBox1.Text在调用之前和之后为属性设置的值ReadAsync()显示在表单上。但是如果我添加useAsync: trueFileStream构造函数调用中,文本框只显示"finished"。永远不会显示文本“生成的字节数组” …

c# asynchronous winforms

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

C# 中的 SafeFileHandle 是什么?何时应该使用它?

当我还在学习 System.IO 时,在File Streamclass 的构造函数中,我发现有名为 类型的重载构造函数SafeFileHandle,我试图在互联网和 MSDN 文档上搜索,但我什么也看不懂,我发现甚至 更奇怪的词,比如IntPtr,有人能给我解释一下吗?

public FileStream (Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access, int bufferSize, bool isAsync);
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下吗,或者有什么好的网站可以让我学习吗?

c# safefilehandle

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

轮廓的 arcLength 的结果是什么?

我在 Google 中搜索arcLength,也许我能理解它,但是它如何在 EmguCV 或 OpenCV 中处理图像中的轮廓呢?我尝试使用 MATLAB 制作一个小图像。图像是9 x 9,我在图像中画了一条线,该线是 1 像素。我在 EmguCV 中使用此代码来检测轮廓:

VectorOfVectorOfPoint cons = new VectorOfVectorOfPoint();

        CvInvoke.FindContours(img_gray, cons, null, RetrType.List, ChainApproxMethod.ChainApproxNone);
        for(int i=0; i<cons.Size;i++)
        {
            VectorOfPoint points = cons[i];
            for(int x =0; x<points.Size;x++)
            {
               temp[points[x]] = new Gray(255);
            }
           double c= CvInvoke.ArcLength(cons[i], true);
            textBox1.Text = c.ToString();             
        }

        imageBox2.Image = temp;
Run Code Online (Sandbox Code Playgroud)

arcLength曾是:

  • 当线条为 1 像素时 ->arcLength为 0。
  • 当线条为 2 个像素时 ->arcLength为 2。
  • 当线条为 3 像素时 ->arcLength为 …

c# opencv emgucv

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

标签 统计

c# ×3

asynchronous ×1

emgucv ×1

opencv ×1

safefilehandle ×1

winforms ×1