Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将字符串和数据表传递给backgroundworker C WinForms_C#_Backgroundworker - Fatal编程技术网

C# 如何将字符串和数据表传递给backgroundworker C WinForms

C# 如何将字符串和数据表传递给backgroundworker C WinForms,c#,backgroundworker,C#,Backgroundworker,我有一个WinForm,用户可以选择一些选项,然后单击按钮。该按钮从屏幕上读取用户选项,并确定要使用的DB连接字符串。我想将连接字符串和空数据表传递给另一个类中的backgroundworker。然后,后台工作程序将连接到数据库,检索数据并返回要绑定到主窗体上的datagrid的datatable 除了能够传递数据表之外,我的一切都正常工作 那么,我的问题是,有没有一种方法可以将两种不同的数据类型传递给BGW?或者可以将字符串和数据表包装到单个对象中吗 是否可以将字符串和数据表包装到单个对象中

我有一个WinForm,用户可以选择一些选项,然后单击按钮。该按钮从屏幕上读取用户选项,并确定要使用的DB连接字符串。我想将连接字符串和空数据表传递给另一个类中的backgroundworker。然后,后台工作程序将连接到数据库,检索数据并返回要绑定到主窗体上的datagrid的datatable

除了能够传递数据表之外,我的一切都正常工作

那么,我的问题是,有没有一种方法可以将两种不同的数据类型传递给BGW?或者可以将字符串和数据表包装到单个对象中吗

是否可以将字符串和数据表包装到单个对象中

如果您需要将两个对象作为单个对象传递,则可以创建一个和。。。等等,我们有元组。只需创建一个包含两个所需类型项的元组并传递它

您可以更精确地使用System.Tuple,它是一个包含两个Item1和Item2的数组

元组:

使用System.ValueTuple,或者更准确地说,它是一个包含两个Item1和Item2的函数,也可以工作,尽管它可能是

ValueTuple:

另见

有没有办法将两种不同的数据类型传递给BGW

要传递的事件处理程序不限于传入的对象。它可以读取声明它的类型。或者,如果它是lambda表达式,也可以使用上下文中的局部变量。请参见。

是否可以将字符串和数据表包装到单个对象中?当然你知道如何创建一个类,对吗?
var tuple = Tuple.Create(connectionString, dataTable);
var tuple = (connectionString, dataTable);