私はデータセットテーブルにバルク挿入するためのかなりのデータテーブルを持っています 大きなサイズのため、1つのテーブルは挿入を完了するのに5分かかりました。 2つのテーブルは、私は今、一括挿入のための非同期操作を行うにしようとしていますが、任意のデータが挿入されていないにも私にエラーを与えてもされていない私に10分バルクコピーのための非同期
static void Main(string[] args)
{
DataTableBulkInsert(DataTable1);
DataTableBulkInsert(DataTable2);
}
public static void DataTableBulkInsert(DataTable Table){
SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(myConnection);
sqlBulkCopy.DestinationTableName = "dbo.DatabaseTable";
myConnection.Open();
sqlBulkCopy.WriteToServer(Table);
myConnection.Close();
}
を取りました。例外をキャプチャする方法は?
static void Main(string[] args)
{
var insert1 = Task.Run(async() => await DataTableBulkInsert(DataTable1);
var insert2 = Task.Run(async() => await DataTableBulkInsert(DataTable2);
Task.WhenAll(insert1, insert 2);
}
public static async Task<Boolean> DataTableBulkInsert(DataTable Table)
{
try
{
SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(myConnection);
sqlBulkCopy.DestinationTableName = "dbo.DatabaseTable";
myConnection.Open();
await sqlBulkCopy.WriteToServerAsync(Table);
myConnection.Close();
}
catch (Exception (e))
{
console.write(e);
}
return true;
}
'console.write(e);'行にデバッガを設定しようとしましたか?私の経験では、非同期メソッドはしばしば例外を取り除きます。 – smoksnes
'Task.WaitAll(insert1、insert 2)を使う' –