小编git*_*agi的帖子

函数ACTUALLY如何在C中返回struct变量?

函数返回值如何对我来说是清楚的,只是为了启动:

int f()
{
  int a = 2;
  return a;
}
Run Code Online (Sandbox Code Playgroud)

现在a获取堆栈中的内存并且它的生命周期在其中f()以便返回它将值复制到一个特殊寄存器的值,该寄存器由调用者知道被调用者为他放置了值.(由于返回值持有者特殊寄存器大小的大小是有限的,这就是为什么我们不能返回大对象因此如果我们想要返回对象函数的高级语言实际上将堆中对象的地址复制到该特殊寄存器)

当我想返回一个不是指针的struct变量时,让我们回到C的情况:

struct inventory
{
    char name[20];
    int number;
};
struct inventory function();

int main()
{
    struct inventory items;
    items=function();
    printf("\nam in main\n");
    printf("\n%s\t",items.name);
    printf(" %d\t",items.number); 
    getch();
    return 0;
}

struct inventory function()
{
    struct inventory items;
    printf(" enter the item name\n ");
    scanf(" %s ",&items.name );
    printf(" enter the number of items\n ");
    scanf("%d",&items.number );
    return items;
}
Run Code Online (Sandbox Code Playgroud)

代码来自:https://stackoverflow.com/a/22952975/962545

这是交易,

让我们从main, …

c struct

43
推荐指数
3
解决办法
3万
查看次数

如何取消等待Task.Delay()?

正如您在此代码中看到的:

public async void TaskDelayTest()
{
     while (LoopCheck)
     {
          for (int i = 0; i < 100; i++)
          {
               textBox1.Text = i.ToString();
               await Task.Delay(1000);
          }
     }
}
Run Code Online (Sandbox Code Playgroud)

我希望它将文本框设置为i一秒钟的字符串值,直到我将LoopCheck值设置为false .但它的作用是它为所有人创建了所有迭代的内容,即使我将LoopCheck值设置为false,它仍然会执行它异步执行的操作.

我想Task.Delay()在设置时取消所有等待的迭代LoopCheck=false.我该如何取消?

c# async-await

25
推荐指数
3
解决办法
2万
查看次数

Azure媒体服务资产管理

使用.net SDK阅读有关Azure媒体服务的所有正式文档之后

在音乐流应用程序中,我无法管理场景下的资产。

问题:-

  1. 创建带有单个AssetFile的新资产时,新任务可以将其编码为“平滑流式传输”,但是以后无法在该资产中添加新的媒体文件,而仅对新添加的文件进行编码(如果我错了,请纠正我)
  2. 即使每次需要添加新的AssetFile时都创建了新资产,它也会限制一个人可以拥有的文件数。(由于最大资产数限制为(编码保留单位数+按需流式保留单位数) + 1)* 10,000)

那么,如果我想进行可伸缩的音乐流应用程序设计,应该如何管理资产?

c# azure azure-media-services

5
推荐指数
1
解决办法
328
查看次数

标签 统计

c# ×2

async-await ×1

azure ×1

azure-media-services ×1

c ×1

struct ×1