我正在循环中运行一个进程,它对每天的操作数量有限制.当它达到这个限制时,我现在已经检查了循环中的时间,看它是否是一个新的日期.
最好的选择是:
有没有办法确定是否<asp:UpdatePanel />已执行类似于我们可以使用的Ajax回发...
if(!Page.IsPostBack) { ...snip }
Run Code Online (Sandbox Code Playgroud)
...确定是否正在进行按钮提交的回发.
我正在尝试从jQuery中检测Ajax请求,但它正在拾取UpdatePanel请求,我想要排除,例如......
if (Request.IsAjaxRequest() && !Page.IsUpdatePanelPostback)
{
// Deal with jQuery Ajax
}
Run Code Online (Sandbox Code Playgroud) 我有一个数组:
string[] exceptions = new string[] { "one", two", "one_1", "three" };
Run Code Online (Sandbox Code Playgroud)
..我希望能够说:
var result = from c in myCollection
where not c.Property[3].Value.StartWith(exceptions)
select c;
Run Code Online (Sandbox Code Playgroud)
所以我希望myCollection过滤只显示那些在例外数组Property[3].Value中没有 StartWith值的记录.我知道StartsWith没有采集集合所以我不确定这是否可以通过LINQ实现.
这在LINQ中是否可行?!或者我是否想把我的问题变成LINQ解决方案?
编辑:我应该说,包含不是一个选项,因为我只想排除其属性以异常字符串开头的元素.
其中一个表列是VARBINARY类型,需要引发查询以评估特定字节模式的行,以下方法会显着降低性能:
declare @pattern varbinary
// 19 bytes constant
set @pattern = 0x00.....
-- r.payload is of VARBINARY type as well
SELECT .... FROM ...
WHERE substring(r.payload, 0, 19) <> @pattern
Run Code Online (Sandbox Code Playgroud)
给定方法有什么替代方案吗?
只是想知道为什么Java并.NET Framework默认使用不同的排序算法.
在Java中 ,默认情况下Array.Sort()使用Merge Sort算法,而Wikipedia.com则说:
在Java中,Arrays.sort()方法使用合并排序或调整快速排序,具体取决于数据类型,并且实现效率切换到插入排序时,排序少于七个数组元素
在.NET Framework中 Array.Sort/List.Sort()使用Quick Sort作为默认排序算法(MSDN):
List.Sort()使用Array.Sort,它使用QuickSort算法.此实现执行不稳定的排序; 也就是说,如果两个元素相等,则可能不会保留它们的顺序.相反,稳定的排序保留了相等元素的顺序.
通过查看伟大的"算法比较"表,我们可以看到两种算法与最差情况和内存使用情况的观点有很大不同:

这两个Java和.NET是企业解决方案发展的巨大框架,既有嵌入式开发平台.那么为什么他们默认使用不同的排序算法,任何想法?
编辑: 我看到有两个人已经投票结束这个问题,因为没有建设性.我相信Java和.NET是最受欢迎的开发框架,所以找到关于这样的决定的任何非平凡和有趣的想法,或许是事实!真的很有趣.
我正在使用Pipelines模式实现来将消费者与生产者分离,以避免消费者的慢速问题.
如果在消息处理阶段出现任何异常,[1]它将丢失并且不会分派给其他服务/层[2].如何在[3]这样的消息中处理这样的问题不会丢失,重要的是什么!消息的顺序不会混淆,所以上层服务/层将按照它们进入的顺序获取消息.我有一个想法涉及另一个中间Queue但看起来很复杂?不幸的是BlockingCollection<T>,没有公开任何类比的Queue.Peek()方法,所以我可以只读取下一个可用的消息,并在成功处理的情况下做Dequeue()
private BlockingCollection<IMessage> messagesQueue;
// TPL Task does following:
// Listen to new messages and as soon as any comes in - process it
foreach (var cachedMessage in
messagesQueue.GetConsumingEnumerable(cancellation))
{
const int maxRetries = 3;
int retriesCounter = 0;
bool isSent = false;
// On this point a message already is removed from messagesQueue
while (!isSent && retriesCounter++ <= maxRetries)
{
try
{
// …Run Code Online (Sandbox Code Playgroud) 有人告诉我,Hashtable在.NET使用中重复以减少/避免碰撞.
IE浏览器."Rehasing的工作原理如下:假设我们有一组散列不同的函数,H1 ... Hn,并且当从散列表中插入或检索项目时,最初使用H1散列函数.如果这导致碰撞,则尝试使用H2,然后再尝试Hn,以避免在Hashtable中发生碰撞."
假设:我们有一个哈希表,其中n(其中n <Infinity)元素的渐近时间复杂度为o(1); 我们(CLR)在应用一些散列函数(Hn-1散列函数,其中n> 1)时实现了这一点.
问题:当我们寻找(检索)任何元素时(如果使用了不同的散列函数),有人可以解释一下CLR map如何键入哈希码?CLR如何跟踪(如果是)任何活动对象(哈希表)的哈希函数?
提前致谢
我正在(.NET 4.5为Windows 8 Metro应用程序的新WinRT 框架中构建一个IRC客户端.
但是,我有一些问题.我已经发现我需要使用a StreamSocket来读取TCP数据,但我可能做错了.
我相信这是因为我没有收到任何数据.
下面你看我的代码.我无法在网上找到任何有关此问题的代码示例.
class IRCClient
{
private StreamSocket tcpClient;
public string Server = "holmes.freenode.net";
public int Port = 6665;
public IRCClient()
{
tcpClient = new StreamSocket();
}
public async void Connect()
{
await tcpClient.ConnectAsync(
new Windows.Networking.HostName(Server),
Port.ToString(),
SocketProtectionLevel.PlainSocket);
DataReader reader = new DataReader(tcpClient.InputStream);
string data = reader.ReadString(reader.UnconsumedBufferLength);
MessageDialog dialog = new MessageDialog(data);
}
}
Run Code Online (Sandbox Code Playgroud)
该代码后面的数据始终为空字符串.此外,UnconsumedBufferLength始终返回0.
怎么会?
我们看到在IIS 7服务器上运行的ASP.NET上下文中的以下代码块中发生此异常.
1) Exception Information
*********************************************
Exception Type: System.Exception
Message: Exception Caught in Application_Error event
Error in: InitializationStatus.aspx
Error Message:An item with the same key has already been added.
Stack Trace: at
System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
at CredentialsSession.GetXmlSerializer(Type serializerType)
Run Code Online (Sandbox Code Playgroud)
这是发生异常的代码:
[Serializable()]
public class CredentialsSession
{
private static Dictionary<string, System.Xml.Serialization.XmlSerializer> localSerializers = new Dictionary<string, XmlSerializer>();
private System.Xml.Serialization.XmlSerializer GetXmlSerializer(Type serializerType)
{
string sessionObjectName = serializerType.ToString() + ".Serializer";
if (Monitor.TryEnter(this))
{
try
{
if (!localSerializers.ContainsKey(sessionObjectName))
{
localSerializers.Add(sessionObjectName, CreateSerializer(serializerType));
}
}
finally …Run Code Online (Sandbox Code Playgroud) c# ×7
.net ×6
.net-4.0 ×3
comparison ×2
.net-4.5 ×1
ajax ×1
algorithm ×1
arrays ×1
asp.net ×1
c#-4.0 ×1
datetime ×1
dictionary ×1
hashtable ×1
http-post ×1
java ×1
linq ×1
performance ×1
sorting ×1
sql ×1
t-sql ×1
thread-sleep ×1
updatepanel ×1
wcf ×1