問題タブ [task-switching]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
10733 参照

windows - DirectX アプリでの Alt-Tab サポートのベスト プラクティスは?

DirectX アプリケーションを作成する場合、高速でエラーのない方法でAlt、ユーザーがアプリケーションを中断するのをサポートすることが望ましいのは明らかです。これを確実にするためのベストプラクティスは何ですか? 対処する必要がある事項は次のとおりです。Tab

  1. アプリケーションがいつ alt-tab キーを押して終了したか、いつ戻ったかを検出する最良の方法。
  2. ユーザーが Alt-Tab キーを押したときに失われる DirectX リソースと、これに対処する最善の方法。
  3. alt-tab サポートの目的で、アプリケーション アーキテクチャで行うべき主なことと避けるべきこと。
  4. 上記に適用される主要な DirectX バージョン間の重大な違い。

興味深いトリックや落とし穴も聞くのに適しています。

0 投票する
1 に答える
453 参照

c - ATmega チップでの安全な「タスク切り替え」

atmega8のアプリでタスク切り替えに似たものを実装し始めました。主なアイデアは、「現在の画面」構造へのポインタがあるということです。「現在の画面」には、画面を更新し、ボタンと割り込みを処理するためのハンドラが含まれています。

残念ながら、関数ポインターの変更は 2 つの操作で行われることがわかりました。つまり、部分的に変更されてcurrent_screen->handle_signal(...);いる間に何らかの割り込みが行われる可能性があります。current_screen正確なタイミングを処理するため、その変更中に割り込みを無効にして再度有効にすることはできません。タスク変更の途中でいくつかの割り込みを見逃すことはあまり気にしないので、変更されているハンドラーに関するフラグを設定するとうまくいく可能性があります (ただし、見逃せない割り込みの処理は少し難しくなります)。

current_screen次のように、変更中にコピーしcurrent_screen_oldてフラグを設定することを考えました:

しかし、ハンドラーも変更したい場合、これに他のトリックが含まれていないことを100%確信しているわけではありませんcurrent_screen

それに近づくためのより良い方法はありますか?いくつかの良いイディオム?

0 投票する
4 に答える
4286 参照

windows - Can task-switching keyboard shortcuts be disabled in W7 using Delphi?

MY application has had a mode for years where the customer can 'disable access to the OS'. Obviously this feature goes against the grain (at least as far as Windows is concerned) but there are installations where my App is the only program that should ever be visibile to a machine operator amd in this case such a feature is useful.

The technigue I used was built from several 'layers':

  1. Hide the taskbar and button.
  2. Disable task-switching.
  3. Disable my main form system icons.

To disable the taskbar I used:

This worked well and still seems fine on W7. Researching how to disable task-switching some years ago turned up the only technique of 'pretending' that your App is a screen saver (other than terrible things like renaming your app to 'explorer.exe' and booting into it etc):

Not surprisingly this seems to have no effect in W7 (I think it works in XP etc). Does anyone know of another, better, way of enabling / disabling Alt-Tab (and other special windows keys) from working?

0 投票する
2 に答える
325 参照

c# - Windows フォーム アプリケーションのタスクを切り替えることができません

Visual Studio と C# は初めてです。Windows フォーム アプリケーションを完成させましたが、次のバグが検出されました。ユーザーがプログラムを最小化/復元するか、別のタスクに切り替えると、プログラムは終了します (応答なしと表示されます)。このバグにより、このプログラムの実行中にユーザーがマルチタスクを実行できなくなるため、修正する必要があります。問題の考えられる原因と、それらを一般的に解決する方法を知りたいです。提案をいただければ幸いです。ありがとう!

0 投票する
1 に答える
372 参照

rtos - RTOSタスク管理

タスクがプロセッサを放棄しようとしている場合、別のタスクを実行する機会を確保するために、リアルタイムオペレーティングシステムはどのような手順を実行する必要がありますか?

0 投票する
1 に答える
415 参照

arm - タスク切り替えがうまくいかない

このタスク切り替えコードは、s3c2440 ボードでタスクが 1 つしかない場合にうまく機能しますが、2 つ以上のタスクが作成されると、タスク 0 がタスク 1 コードを実行するか、タスク 1 がタスク 0 コードを実行します。理由はわかりません。必要 !

0 投票する
2 に答える
2150 参照

operating-system - IRQ 後に Cortext-M3 でのタスク切り替えがクラッシュする

ARM Cortex-M3 OS にエクソカーネル モデルを使用しました。タスクが UART から読み取りたい場合、ライブラリ関数を呼び出します。データがない場合、SVC 呼び出しを行ってタスクをブロックします (これにより、カーネルはタスクをその IRQ の待機キューに入れ、IRQ を有効にします)。 )。割り込みが発生すると、それを待っているすべてのタスクが実行可能なキューに移動され、割り込みが再び無効になります。

このモデルは、タスクの配列が固定されていたときは問題なく機能していましたが、現在はリンク リストに移行して、より多くの種類の待機キュー (IPC メッセージなど) を許可しています。変更の何かがクラッシュを引き起こしています。デバッグ出力は次のとおりです。

したがって、割り込みまではすべて問題ありません。実際の出力は、どちらの UART が最初にデータを持っているかによって異なりますが、パターンは同じです: 割り込みが発生すると、ブロックされていないタスクが2 回目に切り替えられたときにエラーが発生します。

関連するコードは次のとおりです。アセンブリ シム:

そしてC関数:

SVC、SysTick、PendSV の優先度はそれぞれ 29、30、31 です。

このフォルトはタイプ INVPC の使用法フォルトであり、間違ったタイプの EXC_RETURN 値が使用されていることを意味します。確認したところ、毎回0xfffffffdです。

助言がありますか?どこを見ればいいですか?

0 投票する
2 に答える
2203 参照

time - Vxworks でシステム時刻を取得する

tickGet() と tickAnnounce 以外に VxWorks でシステム時刻を取得する方法はありますか? 特定のタスクのタスク切り替え間の時間を測定したいのですが、 taskSwitchHookAdd 関数の最初と最後の 2 つの tickGet() 値が常に同じであるため、 tickGet() の精度が十分ではないと思います!

0 投票する
1 に答える
728 参照

background - 機密情報がタスク スイッチャーに表示されないようにする - Apple コードが機能しない - iOS 8 の不具合?

このドキュメント:機密情報がタスク スイッチャーに表示されるのを防ぐには、タスク スイッチャーで重要な情報を非表示にするために、applicationDidEnterBackground でビュー コントローラーを表示する方法について説明します。

しかし、iOS 8 では、この正確なコードは機能せず、アプリが再びアクティブになるまで、非常にシンプルでプレーンな黒いビュー コントローラーが表示されません。タスク スイッチャーには機密情報が表示され、何も隠されません。このコードにはアニメーションがないため、理解できません。なぜこれが起こっているのですか?

0 投票する
1 に答える
211 参照

c# - ウィンドウの切り替えに VisualStudio のデバッグが必要

私が最初に作っているものの背景のビット。これは C# ベースのランチャー プログラムであり、メインのホーム シアター メディア プレーヤー (私の場合は Plex、MediaPortal、Kodi) を簡単に切り替えることができるため、個々のメリット (ダウンロード コンテンツには Plex、TV には MediaPortal) をすべて使用できます。録画とライブ TV、その他すべての場合は Kodi、通常はストリーミング)。
これらのアプリケーションは pssuspend を使用して一時停止されます。つまり、すべてのアプリケーションを一度に開いたままにできるため、低速のコンピューターには最適です。

ユーザーは (リモコンの) ボタンを押してランチャーに戻り、別のアプリケーションを選択します。

私はほぼ使用可能なバージョンですが、しばらくの間問題があり、絞り込みました。

ランチャーがアプリケーションに切り替わると (下記の方法を使用)、ランチャー プロセスに戻ることができません。

これは、次の場合にのみ発生します。

  • VisualStudio がデバッグされていないか、"Visual Studio ホスティング プロセス" (プロセスの vshost バージョン) が実行されていません
  • 切り替え先のアプリケーションにキーボード/リモート入力が適用されました
    • つまり、切り替えたアプリケーションのどこかに下に移動すると、ランチャーに戻ることができますが、アプリケーション内で他の何かを押すとすぐに切り替えることができません。
  • ランチャーからではなく、切り替えられたアプリケーションからの切り替え。

それ以外の場合は、すべてが期待どおりに機能します。

切り替えるには、現在使用していますSwitchToThisWindow(IntPtr hWnd, bool fAltTab)http://www.pinvoke.net/default.aspx/user32/SwitchToThisWindow.htmlから)。私も使用Microsoft.VisualBasic.Interaction.AppActivateしました(http://msdn.microsoft.com/en-us/library/x9784w8e(v=vs.100).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1から) )。

これらはどちらも同じ結果になります。

私が確認したことは、問題とは関係ありません:

  • pssuspend: ランチャーに戻る前にアプリケーションを中断せずに実行すると、同じことが起こります
  • オペレーティング システムとコンピューター: 3 台のコンピューター (Windows 8 のインストールと 2 つの Windows 7 のインストール) で同じ問題が発生しています。
  • ホーム画面に戻るためのリスナー: これは EventGhost からの UDP ブロードキャストを使用しており、ランチャーのインターフェイスの更新など、実行する必要がある他のすべてのことを行いますが、ランチャーに切り替えません。
  • ローカル マシンでのコンパイル: 最初はこれが役立つと思っていましたが、上記の状況が原因でした。私の Windows 8 マシンでコンパイルされたバージョンは、その vshost プロセスが開いている限り、Windows 7 でも正常に動作します。他のシステムでは試していません。
    • 管理者として実行しても効果はありませんでした

問題になるべきではありませんが、念のために注意しておく必要があるのは、ランチャーのフロントエンドがすべて CefSharp を使用していることです (CEF は Chrome ブラウザーの統合バージョンです)。これが追加される前に問題が発生していましたが。

私の潜在的な考え:

  • に記載されているAppActivateことから、UIPermission レベルが重要である可能性があることに気付きましたが、手動で完全な信頼に設定しても変更はありません。
    また、VisualStudio では、「セキュリティ」のプロパティが「OneClick セキュリティ」設定を使用するように設定され、「これは完全に信頼できるアプリケーションです」オプションになっていることに気付きました。デバッガーがこれらの昇格された権限を与えるので、これは私には理にかなっていますが、おそらくこれはデバッグを実行しなくても機能するはずです。

コンテキストで切り替えるアプリのコード:

うまくいけば、誰かが何らかのアイデアを持っているか、過去に同様の問題を抱えていました。
追加情報やソースコードが必要な場合はお知らせください。