これはおそらく初心者の質問なので、すぐに出てきてそれを言います。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>