我有一个应用程序,用户将选择执行许多任务以及最大线程数.每个任务应该在一个单独的线程上运行.这是我正在寻找的:
如果用户指定"n小于t",其中n是最大线程数,t是任务数.程序应运行"n"个线程,完成后,应通过某种方式通知程序并重复循环,直到完成所有任务.
我的问题是:如何知道所有正在运行的线程已完成其工作,以便我可以重复循环.
我有一个ASMX(没有WCF)webservice,其方法可以响应一个看起来像这样的文件:
[WebMethod]
public void GetFile(string filename)
{
var response = Context.Response;
response.ContentType = "application/octet-stream";
response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);
using (FileStream fs = new FileStream(Path.Combine(HttpContext.Current.Server.MapPath("~/"), fileName), FileMode.Open))
{
Byte[] buffer = new Byte[256];
Int32 readed = 0;
while ((readed = fs.Read(buffer, 0, buffer.Length)) > 0)
{
response.OutputStream.Write(buffer, 0, readed);
response.Flush();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想在我的控制台应用程序中使用Web引用将此文件下载到本地文件系统.如何获取文件流?
PS我尝试通过post请求下载文件(使用HttpWebRequest类),但我认为有更优雅的解决方案.
我是SQL的新手,并尝试一起构建6个表的连接.这是我的示例代码:
SELECT cr.COMMUNICATIONS_ID, cr.CONSUMER_ID, cr.ACTION_LOG_ID, nc.CONSUMER_ID, cal.CONSUMER_ID, cal.TIPS_AMOUNT, cal.LAST_MOD_TIME, cirm.CONSUMER_RATING, ces.EXPERT_SCORE, cim.CONSUMER_INTEREST_EXPERT_ID, scs.SIMILARITY
FROM COMMUNICATION_RELVANCE AS cr
JOIN network_communications AS nc
ON cr.COMMUNICATIONS_ID=nc.COMMUNICATIONS_ID
JOIN consumer_action_log AS cal
ON cr.ACTION_LOG_ID=cal.ACTION_LOG_ID
JOIN communication_interest_mapping AS cim
ON cr.COMMUNICATIONS_ID=cim.COMMUNICATIONS_ID
JOIN consumer_interest_rating_mapping AS cirm
ON cr.CONSUMER_ID=cirm.CONSUMER_ID
AND cim.CONSUMER_INTEREST_EXPERT_ID=cirm.CONSUMER_INTEREST_ID
JOIN consumer_expert_score AS ces
ON nc.CONSUMER_ID=ces.CONSUMER_ID
AND cim.CONSUMER_INTEREST_EXPERT_ID=CONSUMER_EXPERT_ID
JOIN survey_customer_similarity AS scs
ON nc.CONSUMER_ID=scs.CONSUMER_ID
AND cal.CONSUMER_ID=scs.CONSUMER_ID;
Run Code Online (Sandbox Code Playgroud)
在开始调试之前,我想确保我的代码中没有任何批发问题我的语法.
我正在运行NUnit测试来评估一些已知的测试数据和计算结果.这些数字是浮点数的双倍数,所以我不指望它们完全相等,但我不确定如何将它们视为对于给定的精度相等.
在NUnit中,我们可以与固定的容差进行比较:
double expected = 0.389842845321551d;
double actual = 0.38984284532155145d; // really comes from a data import
Expect(actual, EqualTo(expected).Within(0.000000000000001));
Run Code Online (Sandbox Code Playgroud)
并且对于零以下的数字工作正常,但随着数字的增加,公差确实需要改变,因此我们始终关注相同数量的精度数字.
具体来说,此测试失败:
double expected = 1.95346834136148d;
double actual = 1.9534683413614817d; // really comes from a data import
Expect(actual, EqualTo(expected).Within(0.000000000000001));
Run Code Online (Sandbox Code Playgroud)
当然,更大的数字会因容忍而失败.
double expected = 1632.4587642911599d;
double actual = 1632.4587642911633d; // really comes from a data import
Expect(actual, EqualTo(expected).Within(0.000000000000001));
Run Code Online (Sandbox Code Playgroud)
评估两个浮点数的正确方法是什么,它与给定的精度相等?有没有内置的方法在NUnit中执行此操作?
在Django中,我有以下模型:
from django.db import models
from django.core.files.base import File
import os, os.path
class Project(models.Model):
video = models.FileField(upload_to="media")
def replace_video(self):
"""Convert video to WebM format."""
# This is where the conversion takes place,
# returning a path to the new converted video
# that I wish to override the old one.
video_path = convert_video()
# Replace old video with new one,
# and remove original unconverted video and original copy of new video.
self.video.delete(save=True)
self.video.save(os.path.basename(video_path), File(open(video_path ,"wb")), save=True)
os.remove(video_path)
Run Code Online (Sandbox Code Playgroud)
我希望能够在模型对象/实例上替换 …
我打算在即将到来的项目中加入Markdown.在过去,我刚刚使用了预打包的服务器端Markdown解析器,重新清理了HTML输出(这是一个不必要的步骤?)并将其发送给客户端.
我有兴趣将至少这部分视图渲染卸载到客户端.我以前在Rails应用程序中使用了客户端Javascript Markdown解析器并取得了巨大成功.我委托body对象来监视类markdown-parseme或类似的DOM插入,然后解析它并用结果替换原始文本.
但这是我第一次考虑将其用于野外生产网站.让客户端处理Markdown渲染时会遇到什么问题和安全问题?是否有任何特定的库将这些问题考虑在内?
编辑:脑海中浮现的明显问题是"那些没有Javascript的人".检测没有启用Javascript的浏览器并实现允许客户端(可能手动)标记他们没有JS并将解析移动到服务器端的机制完全在我们的能力范围内.我非常想调查是否存在严重的问题,除了这个普通的兼容性问题之外,将Markdown解析卸载到客户端.渲染一个没有输出缓存的大小合适的页面会增加一个不可忽略的响应时间,通过它,服务器负载,如果我们有信心将该任务从95%的用户移出服务器,那将是很好的.
我试图在C#中编写一些代码,通过导入WSDL,检查它然后动态调用它来动态调用WCF服务.
我正在调用的服务可能会不时更改 - 所以如果它确实如此,我希望我的客户端知道新方法和新输入参数以及调用的输出参数,而无需重建我的客户端.
一种可能的解决方案是动态导入和编译服务引用.
这里概述:从WSDL动态创建程序集
我想避免生成一个组件,然后尽可能地反射它.
我查看了链接中动态代理的代码,他们使用框架类来进行导入.这个班是WsdlImporter.所以我认为很好 - 我可以使用它并检查WSDL模式并确定存在哪些调用以及可用的输入和输出.
问题是创建的MessagePartDescription对象中缺少类型信息WsdlImporter.显然这是因为它无法找到类型而丢失- 请参阅Brian对问题的回答.
那么关于我应该如何进行的任何建议?我在这里走错了路吗?
我有几个动态创建的隐藏输入字段.其中大多数的名称格式为array[]
问题1:
我如何使用jQuery .ajax()或.post()从命名的每个字段获取值array[]并传递它们,以便它们可以$_POST['array']在我的PHP页面中检索?
问题2:
假设说.假设我不知道所述字段的名称,只知道表单的名称.我怎么能像问题1那样做同样的事情?
我.serializeArray()在jQuery文档中找到了,但我不知道我正在做什么,我甚至不确定这是否适用于我不知道字段名称的情况.
提前致谢.
我希望这个问题不是太明显……我已经找到了很多关于解释执行计划的好信息,但有一个问题我还没有找到答案。
计划(更具体地说是相对 CPU 成本)是仅基于模式还是基于数据库中当前的实际数据?
我试图对我的产品数据库中需要索引的位置进行一些分析,但我正在使用我自己的测试系统,该系统没有接近该领域产品所拥有的数据量。我看到一些奇怪的事情,比如在添加索引后估计 CPU 成本实际上略有上升,我想知道这是不是因为我的数据集太小了。
我正在使用 SQL Server 2005 和 Management Studio 来制定计划
我继承了一个严重的连接对象泄漏的.net/web服务项目.奇怪的是,它已经生产了很长一段时间,直到最近才出现问题.我猜垃圾收集器通常会很快清理它们.一个客户站点上的一个Web服务器在负载很重的情况下已经开始耗尽连接.
显然,解决方案是修复所有连接泄漏,但这不会很快发生.我甚至无法更改连接字符串中的最大池设置,连接字符串由应用程序动态构建.这将需要更改代码,这需要通过一个不快的过程.
我可以在服务器上做些什么来缓解这种情况,直到代码发生变化为止?
为什么这只是一个地方的问题,那个位置较小?如果我知道这个问题的答案,我可以找出一个临时工作.
是否有可能实际问题完全是另一回事并导致连接池问题?例如,可能是服务器上的负载平衡已经出现问题,或者出现问题的Web服务器出现了问题.
c# ×4
.net ×2
javascript ×2
sql ×2
web-services ×2
ado.net ×1
ajax ×1
arrays ×1
asmx ×1
django ×1
dynamic ×1
indexing ×1
join ×1
jquery ×1
markdown ×1
mysql ×1
nunit ×1
optimization ×1
python ×1
sql-server ×1
wcf ×1
wcf-binding ×1
wsdl ×1