これはおそらく初心者の質問なので、すぐに出てきてそれを言います。IDisposableクラスを作成するのはこれが初めてです。クラスを正しく作成し、正しく呼び出し、正しく破棄することを確認したいと思います。ありがとう!
システムを使用する;
System.Collections.Genericを使用します。
System.Linqを使用します。
System.Textを使用します。
名前空間クローラー
{{
クラスLoggingClass
{{
パブリッククラスLoggingDisposeable:IDisposable
{{
public void GenericLogging(string systemMsg、string SystemClass、string SystemSection、string ID、string FixID、string baseURL、string mysqlQueryName、string mysqlQuery)
{{
string Loggingall="tblLogsに挿入"+
"set SystemMsg ='" + systemMsg.Replace( "'"、 "''")+ "'" +
"、SystemClass ='" + SystemClass.Replace( "'"、 "''")+ "'" +
"、SystemSection ='" + SystemSection.Replace( "'"、 "''")+
"、ID ='" + CarID.Replace( "'"、 "''")+ "'" +
"、FixID ='" + FixID.Replace( "'"、 "''")+ "'" +
"、baseurl ='" + baseURL.Replace( "'"、 "''")+ "'" +
"、mysqlqueryName ='" + mysqlQuery.Replace( "'"、 "''")+
"、mysqlquery ='" + mysqlQuery.Replace( "'"、 "''")+ "'" +
"、Site ='AutoTrader'" +
"、TimeStamp = Now()";
using(var MYSQLP = new MySQLProcessing.MySQLProcessor())
{{
MYSQLP.MySQLInsertUpdate(Loggingall、 "Loggingall");
}
}
public void Dispose()
{{
this.Dispose(true);
GC.SuppressFinalize(this);
}
保護された仮想voidDispose(bool disposed)
{{
if(!this.Disposed)
{{
if(処分)
{{
//ここでマネージドクリーンアップを実行します。
}
//ここでアンマネージドクリーンアップを実行します。
this.Disposed = true;
}
}
保護されたboolDisposed{get; プライベートセット; }
}
}
}
そして、これは私がそれを呼ぶ方法です。
var options = new ParallelOptions();
options.MaxDegreeOfParallelism = 5;
Parallel.ForEach(urlTable.AsEnumerable()、options、drow =>
{{
using (var logClass = new LoggingClass.LoggingDisposeable())
{
logClass.GenericLogging("ZipCode not available for this dealerL", "DealershipRequest", "checkExistingDealers", dealerID, "DealerShipZipCode",rDealerLink, "", "");
}
}</pre>