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