C#我的OpenReadCompleted事件不起作用

时间:2019-01-28 20:40:03

标签: c# events stream webclient

public Bitmap SaveImage(string url)
{

    WebClient client = new WebClient();


    client.OpenReadCompleted += client_OpenReadCompleted;



    Stream stream = client.OpenRead(url);
    Bitmap bitmap; bitmap = new Bitmap(stream);


    stream.Flush();
    stream.Close();
   // client.Dispose();





    return bitmap;
}

void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
    MessageBox.Show(e.Result.ToString());
}

每次下载图片时, MessageBox不显示

为什么OpenReadCompleted事件不起作用?

1 个答案:

答案 0 :(得分:0)

根据MSDN上“说明”下的文档,这仅适用于异步操作。

您要使用public List<BookModels> book_getList() { try { OpenCon(); List<BookModels> List = con.Query<BookModels>("book_getList", param: null, commandType: CommandType.StoredProcedure).ToList(); return List.ToList(); } catch (Exception) { throw; } finally { CloseCon(); } } 而不是使用OpenRead(url)

OpenReadAsycn(url)返回void,因此您需要在OpenReadAsync函数中对位图进行操作。

让我知道我能否更好地解释。