0
WebサービスxのDeleteメソッドにアクセスするこのコードを記述しましたが、各メソッドのラッパーを作成しますが、おそらく非常に単純なものでブロッカーに当たっています。非同期Webサービスコール
私のコードでは、3つの方法で構成されています。削除呼び出しを行うために
- 一つ、これは単に非同期メソッドにのparamsを渡します。
- 2番目はイベントハンドラです。
- ここで第三のプロセスデータテーブルに結果
は私の現在のコードである:
public void Delete(string[] Identifiers, string ObjectType)
{
service.deleteAsync(ObjectType, Identifiers);
service.deleteCompleted += new deleteCompletedEventHandler(service_deleteCompleted);
}
void service_deleteCompleted(object sender, deleteCompletedEventArgs e)
{
StoreResults(e.Result);
if (resultsTable.Rows.Count == totalRecords)
{
CSVFile myFile = new CSVFile(",", true);
myFile.Save(resultsTable, outputPath);
Console.WriteLine("Tasks completed");
}
}
public void StoreResults(DeleteResult[] ResultSet)
{
if (resultsTable.Columns.Count < 1)
{
resultsTable.Columns.Add("ID");
resultsTable.Columns.Add("Errors");
resultsTable.Columns.Add("Success");
}
foreach (DeleteResult r in ResultSet)
{
StringBuilder errors = new StringBuilder();
object[] newRow = new object[3];
newRow[0] = r.id;
if (r.errors != null)
{
newRow[1] = errors[0].ToString();
}
else
newRow[1] = "No Errors to Report";
newRow[2] = r.success.ToString();
resultsTable.Rows.Add(newRow);
}
}
Webサービスの制限は、私はコールあたり50のIDを渡すことができるということであるので、私が持っていますソースデータのチャンクを管理するいくつかのバックグラウンドコードは、私が今達成する必要があるのは、それらの結果をすべてデータテーブルに保存して戻すことです。