問題タブ [tdlib]

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 投票する
0 に答える
37 参照

java - TDLight-Java で API 呼び出しを正しく同期する方法

ユーザーが管理する Telegram チャネルに関する統計を収集する必要があります。Telegram API を操作するには、 tdlight-javaを使用します。このライブラリ内の Telegram への各リクエストは、SimpleTelegramClient オブジェクトを通じて実行されます。そのオブジェクトは独自のスレッドで実行され、リクエストを非同期的に処理します。したがって、クライアント メソッドへの呼び出しは完全には完了していませんが、getUserID メソッドはすでに値を返しているため、次のメソッドは 0 を返します。

クライアントのメソッドが完了した後にのみ、メソッドの実行を継続する必要があります。そこで、同期ブロックとロックを使用することにしました。

しかし、それは最善の解決策のようには見えません。さらに、このアプローチでは、内部 API 呼び出しを使用する際にいくつかの制限が生じます。

この場合、TelegramClient スレッドはブロックされ、内部要求は完了せず、デッドロックが発生します。

同期のより良いアイデアを教えてください。