2

VB.NET ではそれが可能だったことは知っていますが、C# ではその方法がわかりません。ここでそれをどのように行うでしょうか?

4

3 に答える 3

1

フォームを非表示にして、システム トレイにアイコンを配置できます。終了イベントをオーバーライドして代わりに非表示にし、ユーザーがトレイ アイコンをクリックしたときに表示するようにします。

クロージング イベントとクローズをキャンセルする方法の詳細: http://msdn.microsoft.com/en-us/library/system.windows.forms.form.closing.aspx

于 2012-05-31T01:44:56.637 に答える
0

あなたが提案していることを行うために新しいことを始めるだけで十分Threadですが、これがあなたの目標を満足させるかどうかはわかりません.

編集:

私が提案しているテクニックの例:

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Threading;

namespace HangApp
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
            Runner r = new Runner();
        }

        class Runner
        {
            internal Runner()
            {
                _start = DateTime.Now;
                Thread t = new Thread(ThreadStart);
                t.Start();
            }
            DateTime _start;
            void ThreadStart()
            {
                while (true)
                {
                    //  some stuff to do
                    if (ExitConditionMet())
                    {
                        break;
                    }
                }
            }

            bool ExitConditionMet()
            {
                //  will run the app for 5 seconds after main form was closed
                return (DateTime.Now - _start).TotalSeconds > 5;
            }
        }
    }
}

ところで、上記のコードはデモンストレーションにすぎません。

  • タイトループで何もしないスレッドを実行する
  • クラスコンストラクターでスレッド開始を行う
于 2012-05-31T01:46:07.697 に答える