次の方法で共有


Process.Refresh メソッド

プロセス コンポーネントにキャッシュされている関連付けられたプロセスに関するすべての情報を破棄します。

Public Sub Refresh()
[C#]
public void Refresh();
[C++]
public: void Refresh();
[JScript]
public function Refresh();

解説

Refresh を呼び出した後、各プロパティに関する情報が最初に要求されたときに、プロセス コンポーネントは関連付けられたプロセスから新しい値を取得します。

Process コンポーネントがプロセス リソースに関連付けられている場合、 Process のプロパティ値は関連付けられたプロセスのステータスに従ってすぐに設定されます。関連付けられたプロセスに関する情報が後で変更された場合、これらの変更は Process コンポーネントのキャッシュされた値には反映されません。 Process コンポーネントは、関連付けられた時点でのプロセス リソースのスナップショットです。関連付けられたプロセスの現在の値を表示するには、 Refresh メソッドを呼び出します。

使用例

[Visual Basic, C#, C++] メモ帳のインスタンスを起動する例を次に示します。このコードは、インスタンスが起動すると、2 秒間隔で最大 10 秒間、関連付けられているプロセスの物理メモリ使用量を取得します。また、10 秒が経過する前にプロセスが終了したかどうかを検知します。10 秒経過した後もプロセスが実行中である場合は、プロセスを終了します。

 
Imports System
Imports System.Diagnostics
Imports System.Threading

Namespace Process_Sample
   Class MyProcessClass

      Public Shared Sub Main()
         Try

            Dim myProcess As Process
            myProcess = Process.Start("Notepad.exe")
            ' Display physical memory usage 5 times at intervals of 2 seconds.
            Dim i As Integer
            For i = 0 To 4
               If not myProcess.HasExited Then
               
                  ' Discard cached information about the process.
                  myProcess.Refresh()
                  ' Print working set to console.
                  Console.WriteLine("Physical Memory Usage: " + _
                                              myProcess.WorkingSet.ToString())
                  ' Wait 2 seconds.
                  Thread.Sleep(2000)
               Else 
                  Exit For
               End If
              
            Next i

           ' Close process by sending a close message to its main window.
           myProcess.CloseMainWindow()
           ' Free resources associated with process.
           myProcess.Close()

         Catch e As Exception
            Console.WriteLine("The following exception was raised: ")
            Console.WriteLine(e.Message)
         End Try
      End Sub 'Main
   End Class 'MyProcessClass
End Namespace 'Process_Sample

[C#] 

using System;
using System.Diagnostics;
using System.Threading;

namespace Process_Sample
{
   class MyProcessClass
   {
      public static void Main()
      {
         try
         {
            Process myProcess;
            myProcess = Process.Start("Notepad.exe");
            // Display physical memory usage 5 times at intervals of 2 seconds.
            for (int i = 0;i < 5; i++)
            {
               if (!myProcess.HasExited)
               {
                   // Discard cached information about the process.
                   myProcess.Refresh();
                   // Print working set to console.
                   Console.WriteLine("Physical Memory Usage: " 
                                        + myProcess.WorkingSet.ToString());
                   // Wait 2 seconds.
                   Thread.Sleep(2000);
               }
               else {
                   break;
               } 
            }

            // Close process by sending a close message to its main window.
            myProcess.CloseMainWindow();
            // Free resources associated with process.
            myProcess.Close();

         }
         catch(Exception e)
         {
            Console.WriteLine("The following exception was raised: ");
            Console.WriteLine(e.Message);
         }
      }
   }
}

[C++] 
#using <mscorlib.dll>
#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;

int main() {
    try {
        Process* myProcess;
        myProcess = Process::Start("Notepad.exe");
        // Display physical memory usage 5 times at intervals of 2 seconds.
        for (int i = 0; i < 5; i++) {

            if (!myProcess->HasExited)
            {

               // Discard cached information about the process.
               myProcess->Refresh();
               // Print working set to console.
               Console::WriteLine(S"Physical Memory Usage : {0}", myProcess->WorkingSet.ToString());
               // Wait 2 seconds.
               Thread::Sleep(2000);
            }
            else {
               break;
            }
        }
        // Close process by sending a close message to its main window.
        myProcess->CloseMainWindow();
        // Free resources associated with process.
        myProcess->Close();

    } 
    catch (Exception* e) 
    {
       Console::WriteLine(S"The following exception was raised: ");
       Console::WriteLine(e->Message);
    }
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

.NET Framework セキュリティ:

参照

Process クラス | Process メンバ | System.Diagnostics 名前空間