我将每隔.01秒获得一个JSON字符串甚至更快,我必须将其插入到某个集合中,这样我以后可以遍历每一行并进行一些处理并在此之后删除该行.插入过程不断进行.我是否使用ArrayList或有点困惑Queue.
所以基本上我会插入第一个消息,然后插入第二个然后......同时另一个进程将读取第一个插入的值来处理和删除该记录,然后是第二个插入的值.请告知哪一个最快,存储量少?或者任何其他系列最符合我的要求?
编辑: 我有两种方法 -
GetMessages() - 继续在队列中获取/添加消息(此处消息仅从一个源接收,该源继续发送消息并且在我们手动停止该过程之前不会停止)
ProcessMessages() - 将读取队列记录并在处理后从队列中删除它们
我在我的Windows应用程序中使用websocket sharp dll来从GDAX服务器获取消息.到目前为止一切正常 - 消息即将到来,我正在处理它们.我被卡住的地方是消息停止发生的时候.至少我在WebSocket.OnMessage事件(https://github.com/sta/websocket-sharp)中没有找到任何可以帮助我跟踪消息何时停止的事情(我也尝试过emitonping)
现在我收到的消息有一个消息类型'Heartbeat',每秒发送一次.我想添加一个单独的计时器控件来检查心跳消息是否每秒都会到来,如果它停止了,那么我将需要重新连接服务器.但是,当消息停止发生时没有任何反应我如何跟踪它,我应该在哪里放置定时器代码来检查心跳消息何时停止?
我希望我能解释一下我被击中的情况.如果有人急于帮助我并需要更多投入,请告诉我.
更新
private void _3_Load(object sender, EventArgs e)
{
ConnectAndGetWebsocketFeedMessages();
}
public delegate void WSOpen(string text);
public delegate void WSMessage(string message);
public delegate void WSError(string text);
public delegate void WSClose(string text);
private static string _endPoint = "wss://ws-feed.gdax.com";
WebSocket ws = new WebSocket(_endPoint);
private bool IsConnected { get; set; }
private string ProductId { get; set; }
string productId = "LTC-EUR";
ConcurrentQueue<string> concurrentQueue = new ConcurrentQueue<string>();
public void SetWebSocketSharpEvents()
{
ws.Log.Level = LogLevel.Trace; …Run Code Online (Sandbox Code Playgroud) 我想从这个wss获取数据://ws-feed.gdax.com
我对websocket一无所知.我正在阅读一些教程,它使用像websocket服务器,TCP等术语,我不知道.任何人都可以请建议我应该如何进行,如何编写ac#代码从上面获取数据.
这是我读取的用于获取实时数据的文档 - https://docs.gdax.com/#websocket-feed
通过创建窗口应用程序开始.在这里读到WebSocketSharp库可用于连接WebSockets,因此安装它并且到目前为止编写了这段代码:
using (var ws = new WebSocket("wss://ws-feed.gdax.com"))
{
ws.Connect();
string json = "{\"type\": \"subscribe\", \"product_ids\": [\"BTC-USD\"]}";
ws.Send(json); //gives error -Function evaluation disabled because a previous function evaluation timed out. You must continue execution to reenable function evaluation.
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将非常感激.
我在我的 c# 代码中有这个数据表:
Date | Employee | Job1 | Job2 | Job3 |
---------|----------|------|------|-------|
1/1/2012 | A | 1.00 | 1 | 1 |
1/1/2012 | B | 2.5 | 2 | 2 |
1/1/2012 | C | 2.89 | 1 | 4 |
1/1/2012 | D | 4.11 | 2 | 1 |
1/2/2012 | A | 3 | 2 | 5 |
1/2/2012 | B | 2 | 2 | 2 |
1/2/2012 | C | 3 | …Run Code Online (Sandbox Code Playgroud) 我有一个要求,我必须找到不同年龄组的人数,如:
0-5 12
6-10 35
11-15 26
16-20 57
20+ 120
Run Code Online (Sandbox Code Playgroud)
我在SQL Server中创建一个存储过程,它将首先创建一个临时表并存储年龄组,就像一列将有0而另一列将有5等等.然后我将遍历它们并找到最小和最大范围之间的计数,并将计数与mim-max值存储在另一个临时表中.
有没有其他简单和更好的方法来实现此输出.请指教.
这是我的代码:
var distinctDateValues = dt.AsEnumerable()
.Select(row => new
{
Date = DateTime.Parse(row.Field<string>("DAY"))
})
.Distinct()
.ToList();
distinctDateValues.Sort(); // getting error on this line
Run Code Online (Sandbox Code Playgroud)
distinctDateValues 中的值是:

我得到的错误是“无法比较数组中的两个元素。”
任何人都可以建议我在这里做错了什么。我想对distinctDateValues 的日期列中的值进行排序。
我有一个数据表,其中记录的日期字段列的值为
11/1/2012
12/21/2012
12/22/2012
1/3/2013
1/5/2013
1/6/2013
1/7/2013
etc.
Run Code Online (Sandbox Code Playgroud)
我想过滤记录并仅获取当前月份记录,即仅获取日期等于当前月份的行(将由DateTime.now查找).我们怎样才能用Linq和c#做到这一点.
我收到错误消息:类型'Models'在类型'System.Web.Helpers.Chart'中不存在
请帮助我解决这个问题。这是使用mvc和razor语法开发的代码:
模型
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace Chart.Models
{
public class FooBarModel
{
public IEnumerable<SelectListItem> Locations { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
控制器:
using Chart.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace Chart.Controllers
{
public class FooController : Controller
{
//
// GET: /Foo/
public ActionResult Index()
{
var locations = new[]
{
new SelectListItem { Value = "US", Text = "United States" },
new SelectListItem { Value = …Run Code Online (Sandbox Code Playgroud) 在此代码中出错:
var distinctDateValues = dt.AsEnumerable()
.Select(row => DateTime.Parse(row.Field<string>("DATE")))
.Distinct()
.OrderByDescending(x => x)
.ToList();
Run Code Online (Sandbox Code Playgroud)
'System.Data.EnumerableRowCollection'不包含'Distinct'的定义,并且没有扩展方法'Distinct'接受类型'System.Data.EnumerableRowCollection'的第一个参数可以找到(你是否缺少using指令或程序集引用?)
我在我的CLR程序中使用此代码.请建议我如何添加dll.添加引用时,它不会在SQL引用选项卡中显示System.Linq.
编辑:我正在使用3.5框架和Visual Studio 2010 CLR项目
c# ×5
linq ×3
.net ×1
asp.net-mvc ×1
date ×1
pivot ×1
razor ×1
sql ×1
sql-server ×1
websocket ×1