相关疑难解决方法(0)

垃圾收集器是否在.NET中的异步调用期间销毁暂时未引用的对象?

想象一下,我将在.NET中进行异步调用,即HttpWebRequest.BeginGetResponse,并且不会在更广泛的范围内引用HttpWebRequest对象.垃圾收集器会破坏它并导致问题吗?

示例代码:

using System;
using System.Net;

public class AsyncHttpWebRequest
{
    void Main()
    {
        var Request = HttpWebRequest.Create("http://www.contoso.com");
        var result = Request.BeginGetResponse(GetResponseCallback, null);
    }

    private void GetResponseCallback(IAsyncResult AsyncResult)
    {
        // Do Something..
    }
}
Run Code Online (Sandbox Code Playgroud)

备用版本(请求作为AsyncState传递):

using System;
using System.Net;

public class AsyncHttpWebRequest
{
    void Main()
    {
        var Request = HttpWebRequest.Create("http://www.contoso.com");
        var result = Request.BeginGetResponse(GetResponseCallback, Request);
    }

    private void GetResponseCallback(IAsyncResult AsyncResult)
    {
        // Do Something..
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# garbage-collection asynchronous

9
推荐指数
1
解决办法
1887
查看次数

标签 统计

.net ×1

asynchronous ×1

c# ×1

garbage-collection ×1