473,242 Members | 4,184 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,242 software developers and data experts.

DataBinding and updating on non UI thread

Hi all,
I may be missing something with how databinding works but I have bound a
datasource to a control and everything is great, the control updates to
reflect the state of my datasource when I update the datasource - awesome,
but I have an issue with updating from a different thread.

Here is my datasource, a person class that raises the PropertyChanged event:

class Person : INotifyPropertyChanged
{
private string _name;

public Person(string name)
{
_name = name;
}

public string Name
{
get
{
return _name;
}
set
{
_name = value;

if (PropertyChanged != null)
{
PropertyChanged(this, new
PropertyChangedEventArgs("Name"));
}
}
}

#region INotifyPropertyChanged Members

public event PropertyChangedEventHandler PropertyChanged;

#endregion
}

and here is my form code which has a button and a label, the label displays
the persons name:

private Person _person;

private BindingSource _bsPerson;

private void ThreadForm_Load(object sender, EventArgs e)
{
//Create person and bind person instance name property to label
_person = new Person("Bob");

_bsPerson = new BindingSource();
_bsPerson.DataSource = _person;

Binding personBinding = new Binding("Text", _bsPerson, "Name");
label1.DataBindings.Add(personBinding);
}

private void btnUpdateInUIThread_Click(object sender, EventArgs e)
{
_person.Name = "Frank";
}

However, now I want to update my datasource in a different thread than
the thread which created the control. If I update my datasource, i.e. change
the persons name I get a threading error WHICH I WOULD EXPECT to get since
the databinding is updating the control in a different thread that the one
which created it. For example:

private void btnUpdateInNewThread_Click(object sender, EventArgs e)
{
//Create a thread which will attempt to update the
//label which displays the person name
Thread t = new Thread(delegate()
{
_person.Name = "Jim";
});

t.Start();
}

My question is how can I get the binding to update in the correct thread,
I could clear the controls binding collection and re-add them after the
source has been updated but that seems to defeat the point of binding in the
first place, I don't want to be thinking about what thread has been used to
update my datasources. Why can't the binding be smart enough to detect a
cross thread operation and call invoke.

I could also as the Microsoft documentation suggests put the updates in a
list and then process them in the Main UI thread, but to me that seems a hack
some part of my object model will be responsible for updating the model
automatically, I don't want to be exposing this kind of code.

It seems to me like this would be a common occurance, hopefully I am just
missing something.

Thanks
Mark
Jan 22 '06 #1
5 12450
Mark,

You are going to have to pay attention to where the change on the
operation is going to take place. Basically what you need to do is on the
control that is data bound to, call the InvokeRequired method. If it
returns true, then you need to pass a delegate to the Invoke method on the
control, along with any parameters that might be needed. The delegate you
pass would be the method which will set the property with the appropriate
value.

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"Mark R. Dawson" <Ma*********@discussions.microsoft.com> wrote in message
news:29**********************************@microsof t.com...
Hi all,
I may be missing something with how databinding works but I have bound a
datasource to a control and everything is great, the control updates to
reflect the state of my datasource when I update the datasource - awesome,
but I have an issue with updating from a different thread.

Here is my datasource, a person class that raises the PropertyChanged
event:

class Person : INotifyPropertyChanged
{
private string _name;

public Person(string name)
{
_name = name;
}

public string Name
{
get
{
return _name;
}
set
{
_name = value;

if (PropertyChanged != null)
{
PropertyChanged(this, new
PropertyChangedEventArgs("Name"));
}
}
}

#region INotifyPropertyChanged Members

public event PropertyChangedEventHandler PropertyChanged;

#endregion
}

and here is my form code which has a button and a label, the label
displays
the persons name:

private Person _person;

private BindingSource _bsPerson;

private void ThreadForm_Load(object sender, EventArgs e)
{
//Create person and bind person instance name property to label
_person = new Person("Bob");

_bsPerson = new BindingSource();
_bsPerson.DataSource = _person;

Binding personBinding = new Binding("Text", _bsPerson, "Name");
label1.DataBindings.Add(personBinding);
}

private void btnUpdateInUIThread_Click(object sender, EventArgs e)
{
_person.Name = "Frank";
}

However, now I want to update my datasource in a different thread than
the thread which created the control. If I update my datasource, i.e.
change
the persons name I get a threading error WHICH I WOULD EXPECT to get since
the databinding is updating the control in a different thread that the one
which created it. For example:

private void btnUpdateInNewThread_Click(object sender, EventArgs e)
{
//Create a thread which will attempt to update the
//label which displays the person name
Thread t = new Thread(delegate()
{
_person.Name = "Jim";
});

t.Start();
}

My question is how can I get the binding to update in the correct thread,
I could clear the controls binding collection and re-add them after the
source has been updated but that seems to defeat the point of binding in
the
first place, I don't want to be thinking about what thread has been used
to
update my datasources. Why can't the binding be smart enough to detect a
cross thread operation and call invoke.

I could also as the Microsoft documentation suggests put the updates in a
list and then process them in the Main UI thread, but to me that seems a
hack
some part of my object model will be responsible for updating the model
automatically, I don't want to be exposing this kind of code.

It seems to me like this would be a common occurance, hopefully I am just
missing something.

Thanks
Mark

Jan 22 '06 #2
Hi Nicholas,
thanks for your reply. I would think that the reason someone would have
been using databinding in the first place is so that they don't have to write
extra code to update their controls. I am not sure why MS would not have
just have the databinding stack figure out that it needs to call Invoke
internally.

Where exactly would you put the check to InvokeRequired in the chain from
the data source being updated to the CurrencyManager pushing the value to the
bound control that you mentioned, is there some event that you have to
intercept?

Thanks
Mark.

Mark.

"Nicholas Paldino [.NET/C# MVP]" wrote:
Mark,

You are going to have to pay attention to where the change on the
operation is going to take place. Basically what you need to do is on the
control that is data bound to, call the InvokeRequired method. If it
returns true, then you need to pass a delegate to the Invoke method on the
control, along with any parameters that might be needed. The delegate you
pass would be the method which will set the property with the appropriate
value.

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"Mark R. Dawson" <Ma*********@discussions.microsoft.com> wrote in message
news:29**********************************@microsof t.com...
Hi all,
I may be missing something with how databinding works but I have bound a
datasource to a control and everything is great, the control updates to
reflect the state of my datasource when I update the datasource - awesome,
but I have an issue with updating from a different thread.

Here is my datasource, a person class that raises the PropertyChanged
event:

class Person : INotifyPropertyChanged
{
private string _name;

public Person(string name)
{
_name = name;
}

public string Name
{
get
{
return _name;
}
set
{
_name = value;

if (PropertyChanged != null)
{
PropertyChanged(this, new
PropertyChangedEventArgs("Name"));
}
}
}

#region INotifyPropertyChanged Members

public event PropertyChangedEventHandler PropertyChanged;

#endregion
}

and here is my form code which has a button and a label, the label
displays
the persons name:

private Person _person;

private BindingSource _bsPerson;

private void ThreadForm_Load(object sender, EventArgs e)
{
//Create person and bind person instance name property to label
_person = new Person("Bob");

_bsPerson = new BindingSource();
_bsPerson.DataSource = _person;

Binding personBinding = new Binding("Text", _bsPerson, "Name");
label1.DataBindings.Add(personBinding);
}

private void btnUpdateInUIThread_Click(object sender, EventArgs e)
{
_person.Name = "Frank";
}

However, now I want to update my datasource in a different thread than
the thread which created the control. If I update my datasource, i.e.
change
the persons name I get a threading error WHICH I WOULD EXPECT to get since
the databinding is updating the control in a different thread that the one
which created it. For example:

private void btnUpdateInNewThread_Click(object sender, EventArgs e)
{
//Create a thread which will attempt to update the
//label which displays the person name
Thread t = new Thread(delegate()
{
_person.Name = "Jim";
});

t.Start();
}

My question is how can I get the binding to update in the correct thread,
I could clear the controls binding collection and re-add them after the
source has been updated but that seems to defeat the point of binding in
the
first place, I don't want to be thinking about what thread has been used
to
update my datasources. Why can't the binding be smart enough to detect a
cross thread operation and call invoke.

I could also as the Microsoft documentation suggests put the updates in a
list and then process them in the Main UI thread, but to me that seems a
hack
some part of my object model will be responsible for updating the model
automatically, I don't want to be exposing this kind of code.

It seems to me like this would be a common occurance, hopefully I am just
missing something.

Thanks
Mark


Jan 23 '06 #3
Mark,

I don't know why you are doing this in the binding class. Rather, it is
usually the programmer of the control to make sure that any bound data
sources are changed on the appropriate thread.

So, your control should not have to do anything, rather, the thread that
is changing the data source should be aware of this, and act accordingly (in
other words, the thread making the change should call InvokeRequired and
Invoke).

--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"Mark R. Dawson" <Ma*********@discussions.microsoft.com> wrote in message
news:A2**********************************@microsof t.com...
Hi Nicholas,
thanks for your reply. I would think that the reason someone would have
been using databinding in the first place is so that they don't have to
write
extra code to update their controls. I am not sure why MS would not have
just have the databinding stack figure out that it needs to call Invoke
internally.

Where exactly would you put the check to InvokeRequired in the chain from
the data source being updated to the CurrencyManager pushing the value to
the
bound control that you mentioned, is there some event that you have to
intercept?

Thanks
Mark.

Mark.

"Nicholas Paldino [.NET/C# MVP]" wrote:
Mark,

You are going to have to pay attention to where the change on the
operation is going to take place. Basically what you need to do is on
the
control that is data bound to, call the InvokeRequired method. If it
returns true, then you need to pass a delegate to the Invoke method on
the
control, along with any parameters that might be needed. The delegate
you
pass would be the method which will set the property with the appropriate
value.

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"Mark R. Dawson" <Ma*********@discussions.microsoft.com> wrote in message
news:29**********************************@microsof t.com...
> Hi all,
> I may be missing something with how databinding works but I have bound
> a
> datasource to a control and everything is great, the control updates
> to
> reflect the state of my datasource when I update the datasource -
> awesome,
> but I have an issue with updating from a different thread.
>
> Here is my datasource, a person class that raises the PropertyChanged
> event:
>
> class Person : INotifyPropertyChanged
> {
> private string _name;
>
> public Person(string name)
> {
> _name = name;
> }
>
> public string Name
> {
> get
> {
> return _name;
> }
> set
> {
> _name = value;
>
> if (PropertyChanged != null)
> {
> PropertyChanged(this, new
> PropertyChangedEventArgs("Name"));
> }
> }
> }
>
> #region INotifyPropertyChanged Members
>
> public event PropertyChangedEventHandler PropertyChanged;
>
> #endregion
> }
>
> and here is my form code which has a button and a label, the label
> displays
> the persons name:
>
> private Person _person;
>
> private BindingSource _bsPerson;
>
> private void ThreadForm_Load(object sender, EventArgs e)
> {
> //Create person and bind person instance name property to
> label
> _person = new Person("Bob");
>
> _bsPerson = new BindingSource();
> _bsPerson.DataSource = _person;
>
> Binding personBinding = new Binding("Text", _bsPerson,
> "Name");
> label1.DataBindings.Add(personBinding);
> }
>
> private void btnUpdateInUIThread_Click(object sender, EventArgs
> e)
> {
> _person.Name = "Frank";
> }
>
> However, now I want to update my datasource in a different thread
> than
> the thread which created the control. If I update my datasource, i.e.
> change
> the persons name I get a threading error WHICH I WOULD EXPECT to get
> since
> the databinding is updating the control in a different thread that the
> one
> which created it. For example:
>
> private void btnUpdateInNewThread_Click(object sender, EventArgs e)
> {
> //Create a thread which will attempt to update the
> //label which displays the person name
> Thread t = new Thread(delegate()
> {
> _person.Name = "Jim";
> });
>
> t.Start();
> }
>
> My question is how can I get the binding to update in the correct
> thread,
> I could clear the controls binding collection and re-add them after the
> source has been updated but that seems to defeat the point of binding
> in
> the
> first place, I don't want to be thinking about what thread has been
> used
> to
> update my datasources. Why can't the binding be smart enough to detect
> a
> cross thread operation and call invoke.
>
> I could also as the Microsoft documentation suggests put the updates
> in a
> list and then process them in the Main UI thread, but to me that seems
> a
> hack
> some part of my object model will be responsible for updating the model
> automatically, I don't want to be exposing this kind of code.
>
> It seems to me like this would be a common occurance, hopefully I am
> just
> missing something.
>
> Thanks
> Mark


Jan 23 '06 #4
here is a simple example of what I don't understand how to handle, if I have
a person class and it has a Save method that takes 30 seconds to save, the
save should happen on a seperate thread so the UI remains responsive. The
person instance has been bound to a label and when it is saved internally the
state of the object is changed so the binding refreshes, however this is now
in the thread that saved the object not the main UI thread, the person class
knows nothing about what it is bound to in the UI, so how would you deal with
this case?

You could do:

1. before calling save break all the datasource links to the person i.e.
label1.DataSource = null then reenable them after the save has completed.

but I don't like that, since I don't want to have to think about this, if I
do I might as we ll write the update manually without binding.

Thanks
Mark
"Nicholas Paldino [.NET/C# MVP]" wrote:
Mark,

I don't know why you are doing this in the binding class. Rather, it is
usually the programmer of the control to make sure that any bound data
sources are changed on the appropriate thread.

So, your control should not have to do anything, rather, the thread that
is changing the data source should be aware of this, and act accordingly (in
other words, the thread making the change should call InvokeRequired and
Invoke).

--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"Mark R. Dawson" <Ma*********@discussions.microsoft.com> wrote in message
news:A2**********************************@microsof t.com...
Hi Nicholas,
thanks for your reply. I would think that the reason someone would have
been using databinding in the first place is so that they don't have to
write
extra code to update their controls. I am not sure why MS would not have
just have the databinding stack figure out that it needs to call Invoke
internally.

Where exactly would you put the check to InvokeRequired in the chain from
the data source being updated to the CurrencyManager pushing the value to
the
bound control that you mentioned, is there some event that you have to
intercept?

Thanks
Mark.

Mark.

"Nicholas Paldino [.NET/C# MVP]" wrote:
Mark,

You are going to have to pay attention to where the change on the
operation is going to take place. Basically what you need to do is on
the
control that is data bound to, call the InvokeRequired method. If it
returns true, then you need to pass a delegate to the Invoke method on
the
control, along with any parameters that might be needed. The delegate
you
pass would be the method which will set the property with the appropriate
value.

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"Mark R. Dawson" <Ma*********@discussions.microsoft.com> wrote in message
news:29**********************************@microsof t.com...
> Hi all,
> I may be missing something with how databinding works but I have bound
> a
> datasource to a control and everything is great, the control updates
> to
> reflect the state of my datasource when I update the datasource -
> awesome,
> but I have an issue with updating from a different thread.
>
> Here is my datasource, a person class that raises the PropertyChanged
> event:
>
> class Person : INotifyPropertyChanged
> {
> private string _name;
>
> public Person(string name)
> {
> _name = name;
> }
>
> public string Name
> {
> get
> {
> return _name;
> }
> set
> {
> _name = value;
>
> if (PropertyChanged != null)
> {
> PropertyChanged(this, new
> PropertyChangedEventArgs("Name"));
> }
> }
> }
>
> #region INotifyPropertyChanged Members
>
> public event PropertyChangedEventHandler PropertyChanged;
>
> #endregion
> }
>
> and here is my form code which has a button and a label, the label
> displays
> the persons name:
>
> private Person _person;
>
> private BindingSource _bsPerson;
>
> private void ThreadForm_Load(object sender, EventArgs e)
> {
> //Create person and bind person instance name property to
> label
> _person = new Person("Bob");
>
> _bsPerson = new BindingSource();
> _bsPerson.DataSource = _person;
>
> Binding personBinding = new Binding("Text", _bsPerson,
> "Name");
> label1.DataBindings.Add(personBinding);
> }
>
> private void btnUpdateInUIThread_Click(object sender, EventArgs
> e)
> {
> _person.Name = "Frank";
> }
>
> However, now I want to update my datasource in a different thread
> than
> the thread which created the control. If I update my datasource, i.e.
> change
> the persons name I get a threading error WHICH I WOULD EXPECT to get
> since
> the databinding is updating the control in a different thread that the
> one
> which created it. For example:
>
> private void btnUpdateInNewThread_Click(object sender, EventArgs e)
> {
> //Create a thread which will attempt to update the
> //label which displays the person name
> Thread t = new Thread(delegate()
> {
> _person.Name = "Jim";
> });
>
> t.Start();
> }
>
> My question is how can I get the binding to update in the correct
> thread,
> I could clear the controls binding collection and re-add them after the
> source has been updated but that seems to defeat the point of binding
> in
> the
> first place, I don't want to be thinking about what thread has been
> used
> to
> update my datasources. Why can't the binding be smart enough to detect
> a
> cross thread operation and call invoke.
>
> I could also as the Microsoft documentation suggests put the updates
> in a
> list and then process them in the Main UI thread, but to me that seems
> a
> hack
> some part of my object model will be responsible for updating the model
> automatically, I don't want to be exposing this kind of code.
>
> It seems to me like this would be a common occurance, hopefully I am
> just
> missing something.
>
> Thanks
> Mark


Jan 23 '06 #5
There are 2 places to put the InvokeRequired stuff:

1. In the non-GUI thread
2. In a Person.OnPropertyChanged() method that you should use to fire the
event. On... is a common (if somewhat unintuitive pattern) that MS uses to
raise events and with C#2.0 INotifyPropertyChanged it is really a no-brainer
since otherwise you duplicate code whenever you have more than one bindable
property.

You might also want to consider the more general SynchronizingObject
pattern (see System.Timers.Timer.SynchronizingObject amongst others) to
specify the required object implementing ISynchronizeInvoke rather than
explicitly referencing a control or form.

"Mark R. Dawson" <Ma*********@discussions.microsoft.com> wrote in message
news:A2**********************************@microsof t.com...
Hi Nicholas,
thanks for your reply. I would think that the reason someone would have
been using databinding in the first place is so that they don't have to
write
extra code to update their controls. I am not sure why MS would not have
just have the databinding stack figure out that it needs to call Invoke
internally.

Where exactly would you put the check to InvokeRequired in the chain from
the data source being updated to the CurrencyManager pushing the value to
the
bound control that you mentioned, is there some event that you have to
intercept?

Thanks
Mark.

Mark.

"Nicholas Paldino [.NET/C# MVP]" wrote:
Mark,

You are going to have to pay attention to where the change on the
operation is going to take place. Basically what you need to do is on
the
control that is data bound to, call the InvokeRequired method. If it
returns true, then you need to pass a delegate to the Invoke method on
the
control, along with any parameters that might be needed. The delegate
you
pass would be the method which will set the property with the appropriate
value.

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"Mark R. Dawson" <Ma*********@discussions.microsoft.com> wrote in message
news:29**********************************@microsof t.com...
> Hi all,
> I may be missing something with how databinding works but I have bound
> a
> datasource to a control and everything is great, the control updates
> to
> reflect the state of my datasource when I update the datasource -
> awesome,
> but I have an issue with updating from a different thread.
>
> Here is my datasource, a person class that raises the PropertyChanged
> event:
>
> class Person : INotifyPropertyChanged
> {
> private string _name;
>
> public Person(string name)
> {
> _name = name;
> }
>
> public string Name
> {
> get
> {
> return _name;
> }
> set
> {
> _name = value;
>
> if (PropertyChanged != null)
> {
> PropertyChanged(this, new
> PropertyChangedEventArgs("Name"));
> }
> }
> }
>
> #region INotifyPropertyChanged Members
>
> public event PropertyChangedEventHandler PropertyChanged;
>
> #endregion
> }
>
> and here is my form code which has a button and a label, the label
> displays
> the persons name:
>
> private Person _person;
>
> private BindingSource _bsPerson;
>
> private void ThreadForm_Load(object sender, EventArgs e)
> {
> //Create person and bind person instance name property to
> label
> _person = new Person("Bob");
>
> _bsPerson = new BindingSource();
> _bsPerson.DataSource = _person;
>
> Binding personBinding = new Binding("Text", _bsPerson,
> "Name");
> label1.DataBindings.Add(personBinding);
> }
>
> private void btnUpdateInUIThread_Click(object sender, EventArgs
> e)
> {
> _person.Name = "Frank";
> }
>
> However, now I want to update my datasource in a different thread
> than
> the thread which created the control. If I update my datasource, i.e.
> change
> the persons name I get a threading error WHICH I WOULD EXPECT to get
> since
> the databinding is updating the control in a different thread that the
> one
> which created it. For example:
>
> private void btnUpdateInNewThread_Click(object sender, EventArgs e)
> {
> //Create a thread which will attempt to update the
> //label which displays the person name
> Thread t = new Thread(delegate()
> {
> _person.Name = "Jim";
> });
>
> t.Start();
> }
>
> My question is how can I get the binding to update in the correct
> thread,
> I could clear the controls binding collection and re-add them after the
> source has been updated but that seems to defeat the point of binding
> in
> the
> first place, I don't want to be thinking about what thread has been
> used
> to
> update my datasources. Why can't the binding be smart enough to detect
> a
> cross thread operation and call invoke.
>
> I could also as the Microsoft documentation suggests put the updates
> in a
> list and then process them in the Main UI thread, but to me that seems
> a
> hack
> some part of my object model will be responsible for updating the model
> automatically, I don't want to be exposing this kind of code.
>
> It seems to me like this would be a common occurance, hopefully I am
> just
> missing something.
>
> Thanks
> Mark


Jan 23 '06 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: Stephan Steiner | last post by:
Hi I'm using several DataTables in my program which are updated periodically. At the same I have those tables bound to DataGrids in my GUI. So far I've been doing all the processing in the same...
3
by: Luis Esteban Valencia | last post by:
Hi, the following code displays a search result in a datagrid and is working without problems. But I think the way I have done is not correct especially databind(). could anyone help me to...
2
by: Neil Steventon | last post by:
Hi , I have started developing a database application , I say start as at this rate I see no finish. I have a windows form which is bound to mydataset table "Companys" and this works great...
14
by: el_sid | last post by:
Our developers have experienced a problem with updating Web References in Visual Studio.NET 2003. Normally, when a web service class (.asmx) is created, updating the Web Reference will...
8
by: Joey Chömpff | last post by:
L.S., Hello is there a way to implement 2-way databinding without using the datasources from dotnet 2.0. Why would you ask? Now that's simple. I've created an object model with BusinessObjects...
11
by: =?Utf-8?B?R29rdWw=?= | last post by:
I am struck up with a problem and want anyone here to help me out. I am a beginner in .NET trying to learng DataBinding concepts. I have binded 4 text boxes with a dataset but when I say...
7
by: Vlado Jasovic | last post by:
Hello, I'm using typed dataset for databinding to windows controls and I'm having some problems. I'm trying to move all business logic to datatable column_changing events and the problem that...
4
by: Jason Wolf | last post by:
I have an object which runs in a sperate thread, from the main thread, and while running it updates a public property. In my main form I defined databinding on the property and I would like to see...
3
by: David Smith | last post by:
I have an app that shows the time it takes to execute a search, much like SQL Management Studio, but the app behaves as though the System.Windows.Forms.Timer gets blocked while binding the results to...
0
by: fareedcanada | last post by:
Hello I am trying to split number on their count. suppose i have 121314151617 (12cnt) then number should be split like 12,13,14,15,16,17 and if 11314151617 (11cnt) then should be split like...
0
Git
by: egorbl4 | last post by:
Скачал я git, хотел начать настройку, а там вылезло вот это Что это? Что мне с этим делать? ...
0
by: MeoLessi9 | last post by:
I have VirtualBox installed on Windows 11 and now I would like to install Kali on a virtual machine. However, on the official website, I see two options: "Installer images" and "Virtual machines"....
0
by: DolphinDB | last post by:
The formulas of 101 quantitative trading alphas used by WorldQuant were presented in the paper 101 Formulaic Alphas. However, some formulas are complex, leading to challenges in calculation. Take...
0
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
0
by: Aftab Ahmad | last post by:
So, I have written a code for a cmd called "Send WhatsApp Message" to open and send WhatsApp messaage. The code is given below. Dim IE As Object Set IE =...
0
by: ryjfgjl | last post by:
ExcelToDatabase: batch import excel into database automatically...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.