gpt4 book ai didi

c - 使用外部函数在任务中获取互斥量

转载 作者:太空宇宙 更新时间:2023-11-03 23:36:52 25 4
gpt4 key购买 nike

我想知道是否可以通过调用外部函数在任务中获取互斥量。下面是我的代码:

void TakeMutexDelay50(SemaphoreHandle_t mutex)
{
while(xSemaphoreTake(mutex, 10) == pdFALSE)
{
vTaskDelay(50);
}
}

bool ContinueTaskCopy()
{
TakeMutexDelay50(ContinueTask_mutex);
bool Copy = ContinueTask;
xSemaphoreGive(ContinueTask_mutex);
return Copy;
}

基本上,我的任务调用函数 ContinueTaskCopy()。这是好的做法吗?

最佳答案

上面的代码可以工作,但是如果您在 while 循环中没有做任何事情来获取互斥量,您可以将超时设置为 portMAX_DELAY 并避免每 50 个滴答进行一次所有上下文切换。

关于c - 使用外部函数在任务中获取互斥量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58266603/

25 4 0