对于没有这个重复的错误,你想在这里捕捉
try{
//execute you insert in base
}catch(Exception ex){
// If your constraint is not respected, an error is thrown.
console.WriteLine("db error : "+ex.Message);
}
但是,它是暂时的,它是功能性的,但它很糟糕,它不合适......
为了拥有正确的代码,您需要创建一个后台处理程序:
class Spooler{
public System.Collections.Generic.List<String> RequestList = new System.Collections.Generic.List<String>();
public Spooler(){
// Open you Database
// Start you thread will be verify if a request adding in the collection
SpoolThread = new Thread(new ThreadStart(SpoolerRunner));
SpoolThread.Start();
}
public createRequestDb(String DbRequest){
RequestList.Add(DbRequest);
}
private void SpoolerRunner()
{
while (true)
{
if (RequestList.Count() >= 1){
Foreach (String request in RequestList){
// Here, you want to verify your request, if args already exist
// And add request in Database
}
}
// Verify is request exist in the collection every 30 seconds..
Thread.Sleep(30000);
}
}
}
为什么要使用后台处理程序?
只是因为,当您在调用线程之前初始化假脱机程序时,您想在每个线程中调用假脱机程序,并且对于每个请求,您在集合中添加请求,并且假脱机程序将一个接一个地处理......而不是在在每个不同的线程中同时...
编辑:
这个假脱机程序是一个示例,用于在您的数据库中一个一个地插入一个字符串请求,您可以为您想要的对象创建一个带有集合的假脱机程序,如果不存在则插入到数据库中......这只是一个示例一个解决方案,当你有很多线程时,一个接一个地进行治疗^^