0

据我了解,我想第一次使用多线程,有两条法则要遵守: - 线程只能与 void 一起使用 - 不能使用线程来更改 Windows 窗体中的某些内容(除非您使用委托)。

因此,我根据此规则对宏进行编码,这是我的代码:

public void exec_RT(string tickername, bool isSubIndex)
{
    DataTable RT_dt = Price_dt(tickrname, isSubIndex);
    Infragistics.Win.UltraWinChart.UltraChart toplot = new Infragistics.Win.UltraWinChart.UltraChart();
    toplot = forms.Real_timeAlpha;
    configgraph(RT_dt, toplot);
}

我的问题是函数 Price_dt 返回一个数据表:

public DataTable Price_dt(string tickername, bool isSubIndex)
{
    DoMyThing();
    return real_time;
}

所以我的问题是如何让 void 返回数据表?

谢谢

4

3 回答 3

0

您可以使用类成员来存储数据表。

public DataTable Price_dt(string tickername, bool isSubIndex)
{
    DoMyThing();
    this.setDT(real_time);
}

我很确定您必须(/应该)使用调用来设置表(因此是函数)。

您可以在班级的每个其他部分引用“存储”表。

希望这可以帮助

于 2013-08-23T14:18:14.817 回答
0

您可以将 传递DataTable给您的方法并在该表中工作。由于DataTable是引用类型,因此您的所有修改都在原始对象上,以使两个变量引用(您的原始变量和来自 Price_dt 内部的变量)。

您的方法将从这里开始

public DataTable Price_dt(string tickername, bool isSubIndex)
{
    DoMyThing();
    return real_time;
}

对此

public void Price_dt(DataTable yourDataTable, string tickername, bool isSubIndex)
{
    //modify yourDataTable here
    DoMyThing();
}
于 2013-08-23T14:22:22.313 回答
0

您可以尝试使用全局变量将 DataTable 存储在

public void exec_RT(string tickername, bool isSubIndex)
    {
        DataTable RT_dt = Price_dt(tickrname, isSubIndex);
        Infragistics.Win.UltraWinChart.UltraChart toplot = new Infragistics.Win.UltraWinChart.UltraChart();
        toplot = forms.Real_timeAlpha;
        //global variable of the type DataTable
        globalTable = RT_dt;
        configgraph(RT_dt, toplot);
    }

并将 globalTable 用于您以后可能需要的任何内容。

于 2013-08-23T14:24:08.210 回答