クラスに問題があります。いくつかのものを別のクラスに移動して、コードをクリーンアップしようとしています。
現在、私は静的メソッドしか使用していないため、たとえば、使用する必要がありました。
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);
}
それとも、それで改善すべきことがありますか?