在C#中使用Directory.GetFiles(),有没有办法在找到文件时启动线程?
行为似乎是"找到所有文件"然后在每个文件上执行您需要的操作.是否有另一个类允许一个人在找到文件时启动线程(达到一定数量)?
看来,这个问题被 问 频繁,但我不来任何明确的结论.当我有以下情况时,我需要一些帮助来确定我是否应该(或必须!)在访问/修改全局变量时实现锁定代码:
所以问题是,我应该使用互斥锁来锁定对全局变量的访问吗?
更具体地说,我正在编写一个C++库,它使用网络摄像头来跟踪纸张上的对象 - 计算机视觉是CPU密集型的,因此性能至关重要.我有一个单一的,其是在剥离工作线程Open()功能.该线程处理所有对象跟踪.Close()调用函数时,它会终止(间接w /全局标志).
感觉就像我只是要求内存损坏,但我没有观察到死锁问题,也没有遇到从这些访问器函数返回的任何错误值.而几个小时的研究后,一般人印象中我得到的是,"咩,可能随便啦.有乐趣的是." 如果我确实应该使用互斥锁,为什么我没有遇到任何问题呢?
这是对我当前程序的过度简化:
// *********** lib.h ***********
// Structure definitions
struct Pointer
{
int x, y;
};
// more...
// API functions
Pointer GetPointer();
void Start();
void Stop();
// more...
Run Code Online (Sandbox Code Playgroud)
实现看起来像这样......
// *********** lib.cpp ***********
// Globals
Pointer p1;
bool isRunning = false;
HANDLE hWorkerThread;
// more...
// API functions
Pointer GetPointer()
{
// NOTE: my current implementation is …Run Code Online (Sandbox Code Playgroud) 我从SQL-Server nvarchar(3000)字段中获取数据,该字段格式为html,在Crystal Reports 11中显示它.数据被保存为项目符号,如果我将数据拉出并放入带有html扩展名的文本文件,它显示了项目符号.但是从Crystal,它没有.我得到新线,但没有子弹.
保存的字段如下所示:
<HTML><BODY><DIV STYLE="text-align:Left;font-family:Tahoma;font-style:normal;font-weight:normal;font-size:11;color:#000000;"><DIV><DIV><P><SPAN>This is a bulleted list</SPAN></P><UL><LI><P><SPAN>One</SPAN></P></LI><LI><P><SPAN>Two</SPAN></P></LI><LI><P><SPAN>Three</SPAN></P></LI></UL><P><SPAN /></P></DIV></DIV></DIV></BODY></HTML>
Run Code Online (Sandbox Code Playgroud)
在Crystal中,它看起来像这样:
This is a bulleted list
One
Two
Three
Run Code Online (Sandbox Code Playgroud)
换句话说,没有子弹.为什么不?
我正在编写一个Perl脚本,我需要在其中循环遍历字符串的每个字符.有很多字符串,每个字符串长100个字符(它们是短的DNA序列,以防你想知道).
那么,使用一次substr提取每个字符是否更快,或者split将字符串更快地转换为数组然后遍历数组?
在我等待答案时,我想我会读到如何在Perl中对事物进行基准测试.
我一直在学习php,只需插上它即可.
我希望有人能指出我在安全,流程和一般最佳实践方面的正确方向?
谢谢.
编辑 -
我想用一种更好的方式来表达我想要问的是什么.最佳实践是什么:
1.)在处理表单时使用php,get vs post,$ _REQUEST vs $ _GET&$ _POST
2.)动态创建HTML时文件(如下所示)
3.)在与表单创建者相同的文件中登录和身份验证
4.)使用php发送电子邮件
来自#2以上
<?php
echo "<h1> Welcome </h1>";
if ($_SESSION['type'] == "admin")
{
//lots of html in the echo statment
echo "tables and admin interface here";
} else
{
//lots of html in the echo statment
echo "tables and user dashboard here";
}
?>
--VS--
<h1> Welcome </h1>
<?php
if ($_SESSION['type'] == "admin")
{
?>
lots of html in the echo statment
tables and admin …Run Code Online (Sandbox Code Playgroud) 当语言不符合scala组合解析器的语法时,我想抛出一个异常.这是一个规则的例子:
def record: Parser[Record] = "-" ~ opt(recordLabel) ~ repsep(column, ",") ^^ {
case "-" ~ label ~ columns => new Record(label, columns)
}
Run Code Online (Sandbox Code Playgroud)
让我们说在repsep(列,",")部分,他们意外地创建一个像这样的字符串
a, b, c, d,
Run Code Online (Sandbox Code Playgroud)
这是无效的,因为它以","结束,而不是假设存在.当你调用parseAll()时,而不是解析器只是停止,你如何使这个抛出一个人类可读的有意义的异常?(自定义文本,行号等)
编辑:好的,我发现了一些有用的东西,但我对它的可定制性不满意:
def loadFrom(filename: String) {
val source =
Source.fromFile(filename).getLines.mkString("\n")
val parseResult = parseAll(tables, source)
if(!parseResult.successful) {
throw new TestDataParseException(parseResult.toString)
}
}
Run Code Online (Sandbox Code Playgroud)
toString打印一个好的消息,但是当它找到一个空格时(它有时看起来像我的IDE中的块/方块)它打印出奇怪的东西,比如想要"\ z".我宁愿说,"嘿,你忘了逗号!"
行号/列以[xy]的形式打印出来.我实际上想要显示[Line:x,Column:y],因为人们会更直观地知道这是什么.
谢谢
是否有可能有一个模板化的类,并使用其他类型模板构造函数?
这样的事情:
template<typename T1>
class Foo{
template<typename T2>
Foo(T1 aBar, T2 dummyArgument){
bar = aBar;
bytesOfT2 = sizeof(T2);
};
int bytesOfT2;
T1 bar;
};
Run Code Online (Sandbox Code Playgroud)
这可能吗?如果是这样,我怎么称呼这样的构造函数?我是否需要考虑标题和cpp文件?
谢谢!
//编辑:我的特定例子实际上甚至有点复杂.我有
template <typename U1, U2>
class Foo{
U1 var1;
U2 var2;
};
template <typename T1>
class Bar{
template<typename T2, typename T3>
Bar(Foo<T2,T3> aFoo, T1 aVal){
val=aVal;
bytesOfT2=sizeof(T2);
bytesOfT3=sizeOf(T3);
};
int bytesOfT2;
int bytesOfT3;
T1 val;
};
Run Code Online (Sandbox Code Playgroud)
这是否意味着我可以在这里使用任何类型的Foo变量调用构造函数,它应该根据特定版本的Foo自动选择正确的构造函数(例如,如果我传递的变量是Foo类型,它应该自动将T2设置为bool和T3浮动)?
我有下表有10个唯一行,BookingID是一个包含随机数的FK.该数字不需要按顺序排列.
BookingID, Description
1000 Foo
3000 Bar
1500 Zoo
Run Code Online (Sandbox Code Playgroud)
我需要插入一个名为ID的顺序索引,该索引来自1..x
我如何在SQL Server 2005中这样做?我想写一个光标和x = x + 1,但也许有更好的方法?
这是我想要的结果
Id, BookingID, Description
1 1000 Foo
2 3000 Bar
3 1500 Zoo
Run Code Online (Sandbox Code Playgroud) 我想用python重命名1k文件.它们都是somejunkDATE.doc格式
基本上,我想删除所有的垃圾,只留下日期.我不确定如何匹配目录中的所有文件.
谢谢
这是一个挑战问题,而不是我迫切需要的东西,所以不要整天花在它们身上.
我在2000年左右建立了一个约会网站(早已不复存在),其中一个挑战是计算用户之间的距离,以便我们可以在半径X英里内展示您的"匹配".为了说明问题,给定以下数据库模式(粗略地):
USER TABLE UserId UserName ZipCode
ZIPCODE表ZipCode纬度经度
USER和ZIPCODE加入USER.ZipCode = ZIPCODE.ZipCode.
您将采取什么方法来回答以下问题:在给定用户的邮政编码的X英里范围内的其他用户使用的邮政编码.
我们使用了2000年人口普查数据,其中包含邮政编码表及其近似的经纬度.
我们还使用Haversine公式来计算球体上任意两点之间的距离......非常简单的数学.
至少对我们来说,这个问题是我们19岁的大学生,真正成为了如何有效地计算和/存储从所有成员到所有其他成员的距离.一种方法(我们使用的方法)是导入所有数据并计算从每个邮政编码到每个其他邮政编码的距离.然后,您将存储并索引结果.就像是:
SELECT User.UserId
FROM ZipCode AS MyZipCode
INNER JOIN ZipDistance ON MyZipCode.ZipCode = ZipDistance.MyZipCode
INNER JOIN ZipCode AS TheirZipCode ON ZipDistance.OtherZipCode = TheirZipCode.ZipCode
INNER JOIN User AS User ON TheirZipCode.ZipCode = User.ZipCode
WHERE ( MyZipCode.ZipCode = 75044 )
AND ( ZipDistance.Distance < 50 )
Run Code Online (Sandbox Code Playgroud)
当然,问题是ZipDistance表中会有很多行.它并非完全不可行,但它确实很大.此外,它需要对整个数据集进行完整的预处理,这也不是无法管理的,但不一定是可取的.
无论如何,我想知道你们中的一些大师会对这样的事情采取什么方法.此外,我认为这是程序员不时要解决的常见问题,特别是如果您考虑的算法类似的问题.我对一个彻底的解决方案很感兴趣,其中至少包括所有部分的HINTS,以便快速有效地完成这项工作.谢谢!
c++ ×2
html ×2
.net ×1
c# ×1
character ×1
constructor ×1
database ×1
distance ×1
file ×1
filesystems ×1
formatting ×1
geocoding ×1
gis ×1
grammar ×1
migration ×1
mutex ×1
opencv ×1
parsing ×1
performance ×1
perl ×1
php ×1
python ×1
regex ×1
rename ×1
scala ×1
sql ×1
sql-server ×1
string ×1
symfony1 ×1
t-sql ×1
templates ×1
zipcode ×1