窗体类
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;namespace WindowsApplication2
{
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null; private static Form1 instance;
private Form1()
{
InitializeComponent();
}
public static Form1 GetInstance()
{
if(instance==null)
{
instance=new Form1();
}
return instance;
} /// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
} #region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.Size = new System.Drawing.Size(300,300);
this.Text = "Form1";
}
#endregion
}
}主类调用using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;namespace WindowsApplication2
{
/// <summary>
/// CMainClass 的摘要说明。
/// </summary>
public class CMainClass
{
public CMainClass()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
[STAThread]
static void Main() 
{
Application.Run(Form1.GetInstance());
}
}
}

解决方案 »

  1.   

    你这种Singleton只是类调用时的Singleton 不能实现程序的Singleton 考虑用Mutex实现 或者检查当前里程实现
      

  2.   


    朋友 看看这个问题。http://community.csdn.net/Expert/topic/5686/5686047.xml?temp=.8212702
      

  3.   

    单独从Singleton模式上看没有问题。但是如果要通过这种方式来同时对同一对象进行操作,就可能竞争,死锁。