我正在使用System.Data.SQLite
来存储我的程序的数据和设置(在WPF功能区应用程序中)。
当您打开程序时,它会提示您选择要打开的SQLite数据库,然后从SQLite数据库的设置表中读取多个设置(项目名称,上次打开等)。
关闭应用程序后,在RibbonWindow.Closing
事件中,它会调用SQLiteConnection.Close()
。
用户还可以关闭数据库并打开一个新数据库。
出于某种原因,这些设置有时可能需要几秒钟才能显示在项目信息视图中。如果用户在此过程中单击应用程序关闭按钮或关闭项目文件以允许他们打开另一个项目文件,则会弹出InvalidOperationException
,并显示消息Database is not open
。
关闭程序时,中断每个操作的最佳方法是什么。
答案 0 :(得分:2)
要在SqlLite中打开连接池,请在连接字符串中添加pooling = true;
。它是一个ADO.Net工具,与后端无关。
如果您使用它,而不是传递连接到线程,传递连接参数。然后每个线程将管理它自己的连接。
如果你不想这样做。然后你有选择。
等到线程完成一个循环,除非它们很短,否则就是废话。
忙着稍后再试。哼哼,用户可能会给你的应用程序一个三指致敬并杀死它。
杀死线程,唉!
获取线程以创建自己的非池连接,然后处理它。注意:如果你要创建连接,你可以重载DBMS。
添加布尔属性,在关闭连接时设置它。除非没有设置,否则不要关闭连接。
所以尝试连接池,然后就是。