2011-12-20 8 views
2

私はいつAsp.Netで単一のスレッドを作成する必要があるのか​​疑問がありますか? 私はプログラミングにおいて新しいです。 ありがとうございます。どのような場合に新しいスレッドを作成する必要がありますか?

+0

ユーザーに電子メール通知を送信するサービスを行って。 (C#や他の言語で)新しいスレッドを作るのにはたくさんの理由がありますが、それらをすべてリストアップして埋め込むことができます。あなたはあなたが確信していることに特に遭遇していますか? – corsiKa

答えて

2

あなたがプログラミングの新人であるので、ここにあなたのための単純な真実があります:決して。 ASP.NETで新しいスレッドを作成する必要はありません。

より多くの経験を積むと、高度な技術について学ぶことができます。

+0

しかし、私はスレッドを作成しない場合。 "現在のスレッドがシングルスレッドアパートメントにないため、ActiveXコントロール '8856f961-340a-11d0-a96b-00c04fd705a2'をインスタンス化できません。"どのように問題を避けるために?? – Tina

4

ウェブアプリケーションのプレゼンテーションレイヤーは通常、余分なスレッド自体を作成する必要はありません。 ASP.NETはスレッドを管理します(時には意外なことに、のスレッドアジャイル)、1つのリクエストが複数のスレッドで処理されていることがわかります。

シンクロナイズ(ブロッキング)の方法で各リクエストを処理できるウェブアプリを作成するのは合理的に簡単です。数十人が期待できる「ロングポーリング」アプリを書く必要がある場合は、もっと複雑になりますまたは数十万の同時接続で、すべてイベントベースの応答を待っています。 C#5とVB 11では、新しい非同期機能がよりシンプルになります。

通常、スレッドはプレゼンテーションレイヤーよりもレイヤーで作成される可能性があります。可能であればASP.NETで実行されているWebサービスに対しても、別のWindowsサービスとして実行される可能性があります。しかし、本当に必要な場合を除いて、マルチスレッドの複雑さを回避しようとする価値はあります。

"Rich"クライアントアプリケーション(WPF、WinForms、Silverlight)はです。UIイベントを処理するためにUIスレッドを自由に保つ必要があるため、多くの場合、スレッドまたは非同期型が必要になります。いくつかのバックグラウンド処理(それがローカルのCPUに拘束されている作業であっても、ディスクやネットワークからファイルをロードする作業であれ)を行うことができます。あなたがバックグラウンド/別々の(アプリケーションから)タスクを実行する必要があり、これまであなたは(アプリケーション境界の外に)別のスレッドを作成する必要があり

+0

アンカーに感謝します。 – Tina

1

は、統合は通常、共通のデータベースを介して行います。 ASP.NETで は通常、例えば、サービスがサーバ上で実行されていると私は、これが適切に言葉で表現され、本当にわからないんだけどなど

+1

ご意見ありがとうございます。それは私には有益です。 – Tina

+0

いつも喜んで:) – Rizwan

関連する問題