基本上,我要做的是创建Word的Singleton实例,这样我的其他类就无法创建重复的进程。
public sealed class WordSingleton
{
private static Word.Application _App = null;
WordSingleton() { }
public static Word.Application App
{
get
{
if (_App == null)
_App = new Word.Application();
return _App;
}
}
// dispose the singleton from a single place
public static void Dispose()
{
if (_App != null)
_App.Quit();
Marshal.ReleaseComObject(_App);
}
}
我一直在努力解决这个问题,最终想出了这个。我想知道专家是否可以告诉我我的使用情况 - 如果正确,不正确,需要改进吗?我来自不同的技术,所以这对我来说很新鲜。
答案 0 :(得分:3)
以下是我将如何做到这一点。使用readonly关键字使其无法替换。这也是线程安全的。
public sealed class WordSingleton
{
public static readonly Word.Application Instance = new Word.Application();
private WordSingleton() { }
}
答案 1 :(得分:1)
为什么不在类范围内初始化?
private static Word.Application _App = new Word.Application();
这样的单身人士将由CLR控制。经常处理它。