小编GSe*_*erg的帖子

如何在不中断async/await的情况下创建HttpWebRequest?

我有一堆很慢的函数,基本上是这样的:

private async Task<List<string>> DownloadSomething()
{
    var request = System.Net.WebRequest.Create("https://valid.url");

    ...

    using (var ss = await request.GetRequestStreamAsync())
    { 
        await ss.WriteAsync(...);
    }

    using (var rr = await request.GetResponseAsync())
    using (var ss = rr.GetResponseStream())
    {
        //read stream and return data
    }

}
Run Code Online (Sandbox Code Playgroud)

除了调用之外,这很好地和异步地工作WebRequest.Create- 这一行将UI线程冻结几秒钟,这会破坏async/await的目的.

我已经使用BackgroundWorkers 编写了这个代码,它完美运行并且永远不会冻结UI.
但是,创建与async/await相关的Web请求的正确,惯用方法是什么?或者也许应该使用另一个类?

我已经看到了关于异步a的好答案WebRequest,但即使在那里,对象本身也是同步创建的.

c# httpwebrequest async-await .net-4.5

2
推荐指数
1
解决办法
6635
查看次数

生成的SQL的差异

以下c#代码:

Func<Customer, bool> predicate1 = s => s.Name == "Roger";
dbContext.Customers.Where(predicate1);
Run Code Online (Sandbox Code Playgroud)

生成这个SQL查询:

select col1,col2 from customers 
Run Code Online (Sandbox Code Playgroud)

注意在上面的sql查询中,没有where子句.

但是,在这个c#代码中:

dbContext.Customers.Where(s => s.Name == "Roger");   
Run Code Online (Sandbox Code Playgroud)

它产生:

select col1,col2 from customers where name = 'Rogers'
Run Code Online (Sandbox Code Playgroud)

为什么有区别?有没有办法传递像上面这样的谓词,仍然生成带有where子句的SQL查询?

c# linq linq-to-entities linq-to-sql

2
推荐指数
1
解决办法
52
查看次数

在c#中使用iTextSharp的pdf阿拉伯语

我想在C#中创建一个包含阿拉伯文本内容的PDF文件.我正在使用iTextSharp来创建它.我按照http://geekswithblogs.net/JaydPage/archive/2011/11/02/using-itextsharp-to-correctly-display-hebrew--arabic-text-right.aspx中的说明进行操作.我想在pdf中插入以下阿拉伯语句子.

تمإبرامهذاالعقدفيههااليوم[●]مالموافق[●]منقبلوبين.

[●]需要用动态英语单词替换.我尝试使用ARIALUNI.TTF实现这一点[本教程链接建议].代码如下.

public void WriteDocument()
{
    //Declare a itextSharp document 
    Document document = new Document(PageSize.A4);

    //Create our file stream and bind the writer to the document and the stream 
    PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(@"D:\Test.Pdf", FileMode.Create));

    //Open the document for writing 
    document.Open();

    //Add a new page 
    document.NewPage();

    //Reference a Unicode font to be sure that the symbols are present. 
    BaseFont bfArialUniCode = BaseFont.CreateFont(@"D:\ARIALUNI.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
    //Create a font from the base font 
    Font font = new Font(bfArialUniCode, …
Run Code Online (Sandbox Code Playgroud)

c# pdf arabic itext arabic-support

2
推荐指数
2
解决办法
7745
查看次数

CSS float:对; 不工作

<div id="left-aligh">
    <ul>
        <li><a href="#">About</a></li>
        <li><a href="#">Registered With</a></li>
        <li><a href="#">Social</a></li>
        <li style="float: right;"><a class="active" href="#">Regsiter</a></li>
    </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

使用以下代码将所有菜单项都向左推

#left-aligh {
    float: left;
    position: relative;
    bottom: 300px;
}
Run Code Online (Sandbox Code Playgroud)

但我想单独将寄存器向右推,因为float选项不起作用。我试图在内部声明,<li>但是没有用,请帮忙。

html css html5 css3 css-float

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

抛出异常时退出循环是否可以?

我在 Hackerrank.com 上解决了一个任务,问题是这样的:

你有一个数组。此数组包含数字。
现在输入两个数字:

  • 第一个描述一个总和
  • 第二个描述了你加在一起的索引数量(序列长度)

最后你会得到总和是你定义的数字的序列数量

例如:

你的数组是 [1, 2, 3, 4],你的总和是 3,你的序列长度是 2。
现在你取前两个索引并输出总和:[1, 2] = 3。
这等于你的总和,所以现在你已经找到了一个序列。
下一个序列是 [2, 3] = 5。这不等于 3,所以你的序列计数器保持 1。
最后一个序列是 [3, 4] = 7。这也不等于 3,最后,你找到了一个序列。

我为此编写了这段代码:

static int GetSequences(List<int> s, int d, int m)
{
    //m = segment-length
    //d = sum

    int count = 0;
    int j = 0;
    int k = 0; 

    do
    {
        try
        {
            List<int> temp = new List<int>();

            for (int i = 0; i < m; i++) …
Run Code Online (Sandbox Code Playgroud)

c# arrays

2
推荐指数
1
解决办法
173
查看次数

使用异步创建隐式任务?

在另一个答案中,大致使用了以下代码:

c.Events.OnRedirectToAccessDenied = async (context) => context.Response.StatusCode = 403;
Run Code Online (Sandbox Code Playgroud)

编译器对箭头运算符发出警告,表示不会以任何形式等待表达式。删除async关键字确认需要OnRedirectToAccessDenied一个返回 Task ( Func<RedirectContext<CookieAuthenticationOptions>, Task>)的函数,并且以下无法构建:

c.Events.OnRedirectToAccessDenied = (context) => context.Response.StatusCode = 403;
Run Code Online (Sandbox Code Playgroud)

async关键字似乎仅用于将表达式转换为任务。我以前没见过async用这种方式。

下面的代码不会给出任何编译器警告,但它看起来并不优雅。

c.Events.OnRedirectToAccessDenied = (context) => Task.Run(
                                                    () => context.Response.StatusCode = 403
                                                 );
Run Code Online (Sandbox Code Playgroud)

编译器警告是否毫无根据,async以这种方式使用是否一个好主意?

c# async-await

2
推荐指数
1
解决办法
82
查看次数

为什么这个程序的结果总是零?

我正在尝试编写一个简单的程序,该程序接收最多 30 个学生的分数、姓名和 ID,并打印他们的平均分数。我想知道为什么程序的结果总是零。
如果有人能给我一个提示,我很感激。
这是代码:

#include <stdio.h>

struct student{
    char name[30];
    int mark;
    int ID;

} s[30];

int main() {
    int n, i=0, sum=0;
    float average;
    /* printf("enter the number of students: "); */
    scanf("%d", &n);
    /* printf("enter their information: "); */

    for(i=0; i<n; i++)
        scanf("%s,%d,%d",s[i].name,&s[i].mark,&s[i].ID);

    for(i=0; i<n; i++)
         sum+=s[i].mark;
    
    average=sum/(float)n ;
    printf("%.2f", average);
}
Run Code Online (Sandbox Code Playgroud)

c

2
推荐指数
1
解决办法
103
查看次数

如何在Visual Studio 2008中取消格式化文档?

所以有一个凌乱的XML文件,标签之间的所有空格都被剥离了,所以它是一个有效的XML文件,但它有点不可读.

我按下魔法Ctrl+K, D,文件格式很精美.

我编辑它,然后我想把它放回压缩,几乎不可读的状态,删除标签之间的所有空格.我如何在VS 2008中做到这一点?我查看了所有可用命令的列表,但找不到任何命令.

xml code-formatting visual-studio-2008 visual-studio

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

如何使用Recordset变量!

我的问题如下:

我需要为记录集分配一个值.问题是我需要使用变量.所以,而不是写这个

MyRecordSet![field_name]
Run Code Online (Sandbox Code Playgroud)

我需要写这个

MyRecordSet![variable_name]
Run Code Online (Sandbox Code Playgroud)

这一切对我来说都很简单,直到我发现括号内没有引号来分隔变量名称的文本字符串.因此,我无法区分它们.

拜托,伙计们,帮助我吧!我已经尝试了你能想象到的一切.

提前致谢.

variables excel ms-access vba recordset

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

ber和&ch_array [0]和ch_array有什么区别?

当我定义:

char ch_array[50];
Run Code Online (Sandbox Code Playgroud)
  1. &ch_array[0]和之间有什么区别ch_array

  2. 如果我这样定义怎么办?

    char *ch_array = (char *) malloc(sizeof(char)*50);
    
    Run Code Online (Sandbox Code Playgroud)

    这个问题实际上来自于我使用(&ch_array + 128)vs. &ch_array[128]时间bcopy(&ch_array + 128, buf, 128);.

  3. 我这里有一个segementation故障,但没有使用故障bcopy(&ch_array[128], buf, 128);,为什么?它与存储数组的位置有什么关系吗?

c arrays char

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