-2

クラスに問題があります。いくつかのものを別のクラスに移動して、コードをクリーンアップしようとしています。

現在、私は静的メソッドしか使用していないため、たとえば、使用する必要がありました。

my を使用して操作したい場合はMemoryStream、それをメソッドに入れる必要がありました。

Static Void WorkMS(MemoryStream ms){}

したがって、他のクラスから参照を呼び出す必要はありませんでした。クラスは代わりにメソッドを呼び出します。

しかし、そのように置くことができないものを扱いたい場合は、たとえば:

 void ListenRender(Thread ListenThread, Thread RenderThread, CancellationTokenSource CTSReceive)
{
    CTSReceive = new CancellationTokenSource();
    ListenThread = new Thread(() => CaptureClass.Listen(CTSReceive.Token));
    ListenThread.Start();
    RenderThread = new Thread(() => CaptureClass.Render(CTSReceive.Token));
    RenderThread.Start();
}

うまくいきません。

このメソッドは、 というクラスにありFastMethodsます。

CaptureClass別の(私のメイン)クラスです。

どちらも公開されており、メソッドListen/Renderも公開されています。

CaptureClassそして、 で得たものを見るとCaptureClass.、変数、メソッドなどは表示されず、 のように見えるフォームのものだけが表示されActiveFormますDefaultFont...

それCaptureClassが重要な場合、これは Form を持つ部分クラスです。

調べてみたのですが、部分クラスからメソッドを呼び出せないという記述が見当たらず、何が問題なのかわかりません。

編集1:

簡単な例:

FastMethodsクラスはメソッドを取得しました。

Static Void Method()

CaptureClassを使用FastMethods.Methodして呼び出すことができます。

さて、CaptureClassメソッドを取得しました。

Static Void CapMethod()

FastMethodsCaptureClass.CapMethodそこにも存在しないため、で呼び出すことはできません。

編集3:

これは正しいです。

CaptureClass

internal void Render(CancellationToken CTS)
{}

internal void Listen(CancellationToken CTS)
{}

FastMethods

 void ListenRender(Thread ListenThread, Thread RenderThread, CancellationTokenSource CTSReceive)
{
  CaptureClass Cap = new CaptureClass();

    CTSReceive = new CancellationTokenSource();
    ListenThread = new Thread(() => Cap.Listen(CTSReceive.Token));
    ListenThread.Start();
    RenderThread = new Thread(() => Cap.Render(CTSReceive.Token));
    RenderThread.Start();
}

そして、私がそれを呼び出すとき:

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
   FastMethods.ListenRender(ListenThread, RenderThread, CTSReceive);
}        

それとも、それで改善すべきことがありますか?

4

1 に答える 1