English 中文(简体)
调度中心 开始点播 我做错什么了?
原标题:Dispatch.BeginInvoke What am i doing wrong?

我有一个视图模式, 包含查询数据方法 :

void QueryData() {
    _dataService.GetData((item, error) =>
    {
        if(error != null)
            return;
        Dispatcher.CurrentDispatcher.BeginInvoke(new Action(() =>
        {
            foreach(TimeData d in ((LineDetailData)item).Piecesproduced) {
                Produced.Add(d);
            }
        }), DispatcherPriority.Send);
    });
}

此方法从计时(_Tick) 事件处理器中每10秒被调用一次。 然后对数据进行同步查询, 然后再执行回调。 在那里, 询问的数据应该插入可观察的收藏( 不是 STA Tread - & gt; 启动 Invoke ) 。 它正确地输入回调, 但调度器内部的代码是 : Current Dispatcher. beginInvoke 没有被执行 。

我做错什么了?

最佳回答

这不起作用, 因为您正在使用不同线索运行的方法中调用 Dispatcher.Crent Dispatcher 。 这不是您正在寻找的 Dispatcher

相反, 您在调用方法前应该设置当前 < code> Dispatcher 的本地变量, 然后它会升到你的羊羔里 :

void QueryData() 
{
    var dispatcher = Dispatcher.CurrentDispatcher;
    _dataService.GetData((item, error) =>
    {
        if(error != null)
            return;
        dispatcher.BeginInvoke(new Action(() =>
        {
            foreach(TimeData d in ((LineDetailData)item).Piecesproduced) {
                Produced.Add(d);
            }
        }), DispatcherPriority.Send);
    });
}
问题回答

暂无回答




相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

热门标签