这可能是一个新问题,所以我会马上说出来。这是我第一次创建IDisposable类,我想确保我正确创建了我的类,正确调用了它,并正确处理了它。谢谢!
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Crawler { class LoggingClass { public class LoggingDisposeable : IDisposable { public void GenericLogging(string systemMsg, string SystemClass, string SystemSection, string ID, string FixID, string baseURL, string mysqlQueryName, string mysqlQuery) { string Loggingall = " insert into 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); } protected virtual void Dispose(bool disposing) { if (!this.Disposed) { if (disposing) { // Perform managed cleanup here. } // Perform unmanaged cleanup here. this.Disposed = true; } } protected bool Disposed { get; private set; } } } }
这就是我所说的。
var options = new ParallelOptions(); options.MaxDegreeOfParallelism = 5; Parallel.ForEach(urlTable.AsEnumerable(),options, drow => {
我认为你打算这样做:
public class LoggingDisposeable : IDisposable
{
MySQLProcessing MySQLP;
public LoggingDisposeable()
{
MYSQLP = new MySQLProcessing.MySQLProcessor();
}
public void GenericLogging(string systemMsg, string SystemClass, string SystemSection, string ID, string FixID, string baseURL, string mysqlQueryName, string mysqlQuery)
{
string Loggingall = " insert into 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()";
MYSQLP.MySQLInsertUpdate(Loggingall, "Loggingall");
}
public void Dispose()
{
MYSQLP.Dispose();
}
}
然后像这样使用:
using (var logClass = new LoggingDisposeable())
{
var options = new ParallelOptions();
options.MaxDegreeOfParallelism = 5;
Parallel.ForEach(urlTable.AsEnumerable(), options, drow =>
{
logClass.GenericLogging("ZipCode not available for this dealerL", "DealershipRequest", "checkExistingDealers", dealerID, "DealerShipZipCode", rDealerLink, "", "");
});
}
本文向大家介绍在C ++中正确使用堆栈和堆?,包括了在C ++中正确使用堆栈和堆?的使用技巧和注意事项,需要的朋友参考一下 堆栈-函数内部声明的所有变量将占用堆栈中的内存。因此,函数内的任何局部变量都位于堆栈中。 堆-这是程序的未使用内存,可用于在程序运行时动态分配内存。因此,如果我们希望某些东西的寿命比声明它的函数的寿命更长,则必须在堆上分配它。 示例 堆内存中的主要问题是碎片,而堆栈中更容易出
我目前正在从事一个项目,该项目需要一个生成简单XML的对象。我对XML很陌生,还在学习c 我试图实现的是一个可以在代码中这样调用的函数: 在这一行之后,字符串应该包含如下内容:
问题内容: 我正在阅读有关PyQt5的一些文档,以提出一种简单的信号插槽机制。由于设计方面的考虑,我停了下来。 考虑以下代码: 为了跟踪对滑块所做的更改,我仅打印并记录所做的更改。我对代码不满意的是,我需要调用三次插槽以将相同的信息发送到3个不同的插槽。 是否可以创建自己的将整数发送到单个插槽的函数。插槽功能又会发出需要进行的更改吗? 也许我不完全了解它的目的,因为在PyQt Signal-Slo
我用PHPass散列密码已经很久了。我承认仍然有一些我不完全理解(或忽略)的东西来正确地散列密码,所以今天我查看了所有我能找到的关于它的信息。 回顾PHPass文档,我已经进入了这个: 除了实际的哈希之外,phpass 在对新密码或密码进行哈希处理时会透明地生成随机 salt,并将哈希类型、salt 和密码拉伸迭代计数编码到它返回的“hash 编码字符串”中。当phpass根据存储的哈希对密码或密
问题内容: 我的代码有最后一个问题,涉及反射包中的.Call函数。 所以我在打这样的电话: 我正在执行.Call的方法如下: 我不太了解的是如何操作“ in”变量,以便将需要的映射正确传递到函数中。我看到make()中的第二个参数是参数的长度吗?但是我不太了解如何格式化var以正确传递参数。我递归地遇到错误消息: 任何帮助将非常感激! 问题答案: 来自: 呼叫调用函数与输入参数。例如,如果,代表去
我创建了一个ExecutorService来管理所有单独的线程,每个线程都处理一个套接字连接。我在每个线程中重写了中断方法,以便在线程中断时关闭套接字,以防套接字当前处于不可中断的方法(如socketserver.accept())。 如果我在应用程序关闭时手动调用线程上的中断,一切都会正常关闭。但是,如果我使用我的ExecutorService并运行Shutdown Now,它似乎根本没有调用重