如何创建一个可以容纳数组的队列,而不是具有可变行数的数组。
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 服务器通信。我已经编写了此代码,但是我不想每次需要执行此任务时都让主线程忙,尤其是因为我需要进行其他检查,例如连接是否正常,如果不需要的话退出并等待或尝试将其重新上线。
我的想法是有一个单独的专用于这项任务。我认为创建队列将是主线程让子线程知道该做什么的最佳方式。
数据将是可变数量的字符串对。像:
主要的
//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
}