可変量の行を持つ配列よりも配列を保持できるキューを作成するにはどうすればよいでしょうか。
char data[n][2][50];
//Could be any non 0 n e.g:
n=1; data = {{"status","ok}};
// or
n=3; {{"lat", "180.00"},{"long","90.123"},{"status","ok}};
// and so on
キューに追加される n。それとも、私が求めているものよりも優れた解決策がありますか? キューは、単一のデータ項目を記述する (または再利用可能な例を見つける) のに十分簡単ですが、上記にどの方法を使用するかはわかりません。多分構造体?それは配列とnについては解決しますが、変数配列については解決しますか?
より広く、私が解決しようとしている問題はこれです。POST を使用して Web サーバーと通信する必要があります。このコードは既に作成されていますが、このタスクを実行する必要があるたびにメインスレッドをビジー状態に保ちたくありません。特に、接続が確立されているかどうかなどの他のチェックを行う必要があるためです。戻って待つか、オンラインに戻してみてください。
私の考えは、このタスク専用の 1 つの別のサーバーを用意することでした。メインスレッドが子スレッドに何をすべきかを知らせるには、キューを作成するのが最善の方法であると考えました。
データは可変数の文字列ペアになります。お気に入り:
主要
//Currently does
char data[MAX_MESSAGES_PER_POST][2][50];
...
assembles array
sendFunction(ptrToArray, n);
resumes execution with large and un predicatable delay
//Hopefully will do
...
queue(what needs doing)
carry on executing with (almost) no delay
子
while(0)
{
if(allOtherConditionsMet()) //Device online and so forth
{
if(!empty(myQueue))
{
//Do work and deque
}
}
else
{
//Try and make condition ok. Like reconect dongle.
}
// sleep/Back off for a while
}