C#中如何启动SQL命令之后,忽略返回值,直接继续运行程序?
老革命碰到新问题,希望各位指点.
我自己写的EXE程序,程序会收集数据,收集完之后,在最后一步会调用一个SQL存储过程,处理已经存储的数据,但是这个存储过程会处理好几百万条数据,处理时间会有近10分钟,默认Timeout时间不够,我也不想增加等待时间,因为我也不需要返回值.
怎么样能不等待执行完毕,直接结束程序?
一般像这种都会做SSIS包,但是我不想搞太复杂,还有什么办法解决?
[解决办法]
增加timeout时间,然后用一个线程来执行这个sql语句,呵呵,也挺复杂的,
[解决办法]
或者用BeginExecuteNonQuery异步执行存储过程,
[解决办法]
调用command的异步方法或者开一个线程去执行
[解决办法]
那你就建个触发器,触发了去处理数据。
存储过程只需要去触发这个触发器就行了。
触发后存储过程就结束了。不需要等待。
[解决办法]
用多线程只能解决不用等待的问题,你可以处理其它事情去,但是如果想关闭程序则不行,那样会中断SQL的执行过程的,不过你可以在关闭程序的事件中,判断SQL执行的那个线程是否还在运行,如果还在运行就将程序界面隐藏了,并等待所有后台线程运行完毕再退出。
[解决办法]