c# - 无法访问任务的结果属性

标签 c#

我想我很好地初始化了“任务(TResult)”,但它发送了这个错误:“任务”不包含“结果”的定义并且没有扩展方法“结果”接受类型为“任务”的第一个参数' 可以找到(您是否缺少 using 指令或程序集引用?

我在 .net 4.0 中。这是“MySqlParameter[] param = tu.Result;”产生错误的行。

   Task < MySqlParameter[] > td3 = new Task < MySqlParameter[] > (() = >{
    MySqlParameter[] param = {
        new MySqlParameter("nom", MySqlDbType.String) {
            Value = textBox2.Text
        },
        new MySqlParameter("nom_a", MySqlDbType.String) {
            Value = textBox3.Text
        },
        new MySqlParameter("code", MySqlDbType.String) {
            Value = textBox4.Text.ToUpper()
        },
        new MySqlParameter("ok", MySqlDbType.String) {
            Value = textBox85.Text.ToUpper()
        }
    };
    return param;
});
td3.ContinueWith(tu = >{
    MessageBox.Show(this, Properties.Resources.f_ann + ": \n" + tu.Exception.GetBaseException().Message);

},
new CancellationTokenSource().Token, TaskContinuationOptions.OnlyOnFaulted, TaskScheduler.FromCurrentSynchronizationContext());
td3.ContinueWith(tu = >{
    string sqlm = "update filiere set nom=@nom," + "nom_a=@nom_a, codef=@code" + " where codef='@ok'";
    MySqlParameter[] param = tu.Result;
    conn.Open();
    MySqlHelper.ExecuteNonQuery(conn, sqlm, param);
    td4.Start();
},
new CancellationTokenSource().Token, TaskContinuationOptions.OnlyOnRanToCompletion); * *strong text * *

最佳答案

您选择了错误的重载(只有 39 个)。没有 3 个参数的重载,编译器会跳过它:

td3.ContinueWith
    (tu =>
        {
            MySqlParameter[] param = tu.Result;
        }
    , new CancellationTokenSource().Token
    , TaskContinuationOptions.OnlyOnRanToCompletion
    , TaskScheduler.Default
    );

添加 TaskScheduler.Default 作为最后一个参数就可以了。

关于c# - 无法访问任务的结果属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57821579/

相关文章:

c# - 重新初始化源列表时,LINQ 查询返回旧结果

c# - 将方法放入任务中以避免阻塞 asp.net 线程

c# - 如何在 WP8.1 应用程序中使用反射获取命名空间中的所有类?

c# - 在我的游戏中使用什么代替 Application.DoEvents?

c# - EF6 代码第一个模型 ForeignKey

c# - LinqToTwitter 多用户授权方

c# - C# wpf 中的确认框

c# - 是否可以使用 asp.net 创建推送应用程序?

c# - 如何只允许将一个文件放入列表框控件c#

Java 相当于 C# 中的#region