1

AsyncManager.Parameters["headlines"] = value;見出しの価値を割り当てています。ただし、メソッドが呼び出される headlinesと null になります。NewsCompleted

public void NewsAsync(string city)
    {
        AsyncManager.OutstandingOperations.Increment();
        NewsService newsService = new NewsService();
        newsService.GetHeadlinesCompleted += (value) =>
        {
            AsyncManager.Parameters["headlines"] = value;
            AsyncManager.OutstandingOperations.Decrement();
        };
        newsService.GetHeadlinesAsync(city);
    }

    public ActionResult NewsCompleted(string[] headlines)
    {
        return View("News", new ViewStringModel
        {
            NewsHeadlines = headlines
        });
    }

1.)どうすればこれをデバッグできますか?

2.)また、OutstandingOperationscount が 0 になると、フレームワークは、スレッド プールから新しいスレッドを要求することによって、私の actionCompleted メソッドを呼び出します。この actionCompleted メソッドが呼び出されたとき、コール スタックを調べましたが、背後で正確に何が起こっているのかわかりません。フレームワークが、この特定の actionCompleted メソッドをこのパラメーターで呼び出す必要があることをどのように認識しているかということAsyncManagerです。

助けてくれてありがとう。

4

1 に答える 1

1

これらの調整を試してください..

public void NewsAsync(string city)
{
    AsyncManager.OutstandingOperations.Increment();
    NewsService newsService = new NewsService();
    newsService.GetHeadlinesCompleted += (sender, args) =>
    {
        AsyncManager.Parameters["headlines"] = args.Result;
        AsyncManager.OutstandingOperations.Decrement();
    };
    newsService.GetHeadlinesAsync(city);
}

public ActionResult NewsCompleted(object headlines)
{
    return View("News", new ViewStringModel
    {
        NewsHeadlines = (string[])headlines
    });
}
于 2013-07-27T07:17:14.183 に答える