相关疑难解决方法(0)

UI线程上的任务继续

是否有一种"标准"方式来指定任务延续应该在创建初始任务的线程上运行?

目前我有下面的代码 - 它正在工作,但跟踪调度程序和创建第二个动作似乎是不必要的开销.

dispatcher = Dispatcher.CurrentDispatcher;
Task task = Task.Factory.StartNew(() =>
{
    DoLongRunningWork();
});

Task UITask= task.ContinueWith(() =>
{
    dispatcher.Invoke(new Action(() =>
    {
        this.TextBlock1.Text = "Complete"; 
    }
});
Run Code Online (Sandbox Code Playgroud)

.net c# wpf multithreading task

205
推荐指数
5
解决办法
9万
查看次数

如何从WPF gui运行异步任务并与之交互

我有一个WPF GUI,我想按下一个按钮来启动一个长任务,而不会在任务期间冻结窗口.当任务正在运行时,我想获得有关进度的报告,我想在我选择的任何时候添加另一个按钮来停止任务.

我无法想出使用async/await/task的正确方法.我不能包括我尝试的所有东西,但这就是我现在拥有的东西.

一个WPF窗口类:

public partial class MainWindow : Window
{
    readonly otherClass _burnBabyBurn = new OtherClass();
    internal bool StopWorking = false;

    //A button method to start the long running method
    private async void Button_Click_3(object sender, RoutedEventArgs e)
    {   
        Task burnTheBaby = _burnBabyBurn.ExecuteLongProcedureAsync(this, intParam1, intParam2, intParam3);

        await burnTheBaby;
    }

    //A button Method to interrupt and stop the long running method
    private void StopButton_Click(object sender, RoutedEventArgs e)
    {
        StopWorking = true;
    }

    //A method to allow the worker method to call …
Run Code Online (Sandbox Code Playgroud)

c# wpf asynchronous

44
推荐指数
4
解决办法
5万
查看次数

AspNetSynchronizationContext

试图使用新的C#5异步模型,令我惊讶的AspNetSynchronizationContext是内部类(以及AspNetSynchronizationContextBase基础).因而无证.但是,在ASP.NET代码中使用async/await功能时,了解它的作用至关重要.我是否正确,它确实保证您的延续将与HttpContext.Current原始呼叫者相同?它保证continuation将在与调用者相同的线程上执行吗?

如果后一个假设不正确并且我得到原始线程,我可以确保在continuation中获得相同的线程上下文吗?我的意思是与线程和线程本地存储相关的主体/文化?这很重要,因为ASP.NET本地化依赖于线程的文化,而我的应用程序依赖于.NET角色安全模型(线程的主体).

.net asp.net asynchronous async-await c#-5.0

22
推荐指数
2
解决办法
4253
查看次数

VSTO:在主Excel线程上调用

我在Excel工作表上有一个按钮,它启动一个新线程来进行一些处理.如果我想对Excel进行任何更改(例如,将数据写入单元格Worksheet.Range("A1").Value = "info";),我想我必须使用主UI线程.

如何才能做到这一点?

通常,在的WinForms我所说Invoke的控制,但Excel.ApplicationWorksheetRange对象没有一个Invoke方法.

c# excel vsto

20
推荐指数
2
解决办法
7511
查看次数

标签 统计

c# ×3

.net ×2

asynchronous ×2

wpf ×2

asp.net ×1

async-await ×1

c#-5.0 ×1

excel ×1

multithreading ×1

task ×1

vsto ×1